From 394a3a9b6e5b37a042dc01778d32079b7df17d92 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 22 Apr 2020 18:25:37 +0200
Subject: [PATCH] ENH: retain compound type on List output (continuation of
 68de05285ae4)

- can help in circumstances when an zero-sized entry is written on
  some processors, but the compound-type may be useful for determining
  a particular code path when re-reading the files. Ensures that the
  information is consistent on all processors.

STYLE: adjust separation of includes between List.H and UList.H
---
 .../containers/Lists/FixedList/FixedListIO.C        |  4 ++--
 src/OpenFOAM/containers/Lists/List/List.H           |  5 +----
 src/OpenFOAM/containers/Lists/UList/UList.H         |  1 +
 src/OpenFOAM/containers/Lists/UList/UListIO.C       | 13 +++++++------
 4 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
index 171c9e074e6..198383ce408 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2017-2019 OpenCFD Ltd.
+    Copyright (C) 2017-2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -36,7 +36,7 @@ License
 template<class T, unsigned N>
 void Foam::FixedList<T, N>::writeEntry(Ostream& os) const
 {
-    const word tag = "List<" + word(pTraits<T>::typeName) + '>';
+    const word tag("List<" + word(pTraits<T>::typeName) + '>');
     if (token::compound::isCompound(tag))
     {
         os  << tag << token::SPACE;
diff --git a/src/OpenFOAM/containers/Lists/List/List.H b/src/OpenFOAM/containers/Lists/List/List.H
index 4ae56710b7b..b9ae065c13f 100644
--- a/src/OpenFOAM/containers/Lists/List/List.H
+++ b/src/OpenFOAM/containers/Lists/List/List.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2017-2019 OpenCFD Ltd.
+    Copyright (C) 2017-2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -45,11 +45,8 @@ SourceFiles
 
 #include "UList.H"
 #include "autoPtr.H"
-#include "one.H"
 #include "SLListFwd.H"
 
-#include <initializer_list>
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
diff --git a/src/OpenFOAM/containers/Lists/UList/UList.H b/src/OpenFOAM/containers/Lists/UList/UList.H
index 259aa076c92..19c8321dcd0 100644
--- a/src/OpenFOAM/containers/Lists/UList/UList.H
+++ b/src/OpenFOAM/containers/Lists/UList/UList.H
@@ -49,6 +49,7 @@ SourceFiles
 #include "label.H"
 #include "uLabel.H"
 #include "zero.H"
+#include "one.H"
 #include "contiguous.H"
 #include "nullObject.H"
 #include "stdFoam.H"
diff --git a/src/OpenFOAM/containers/Lists/UList/UListIO.C b/src/OpenFOAM/containers/Lists/UList/UListIO.C
index 81a6fad37f9..b5369cdb9fe 100644
--- a/src/OpenFOAM/containers/Lists/UList/UListIO.C
+++ b/src/OpenFOAM/containers/Lists/UList/UListIO.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2016-2019 OpenCFD Ltd.
+    Copyright (C) 2016-2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -37,13 +37,14 @@ License
 template<class T>
 void Foam::UList<T>::writeEntry(Ostream& os) const
 {
+    const word tag("List<" + word(pTraits<T>::typeName) + '>');
+    if (token::compound::isCompound(tag))
+    {
+        os  << tag << token::SPACE;
+    }
+
     if (size())
     {
-        const word tag = "List<" + word(pTraits<T>::typeName) + '>';
-        if (token::compound::isCompound(tag))
-        {
-            os  << tag << token::SPACE;
-        }
         os << *this;
     }
     else if (os.format() == IOstream::ASCII)
-- 
GitLab