diff --git a/meshLibrary/utilities/containers/LongList/LongList.C b/meshLibrary/utilities/containers/LongList/LongList.C
index ca0f9750595ba27685048b26f74020c4008b4820..10e49be6e098647492edc8a7d5efe3df269886a9 100644
--- a/meshLibrary/utilities/containers/LongList/LongList.C
+++ b/meshLibrary/utilities/containers/LongList/LongList.C
@@ -65,7 +65,7 @@ Foam::Ostream& Foam::Module::operator<<
     const Foam::Module::LongList<T, Offset>& DL
 )
 {
-    if ((os.format() == IOstream::ASCII) || !contiguous<T>())
+    if ((os.format() == IOstream::ASCII) || !is_contiguous<T>::value)
     {
         if (DL.size() < 15)
         {
@@ -157,7 +157,7 @@ Foam::Istream& Foam::Module::operator>>
         DL.setSize(size);
 
         // Read list contents depending on data format
-        if ((is.format() == IOstream::ASCII) || !contiguous<T>())
+        if ((is.format() == IOstream::ASCII) || !is_contiguous<T>::value)
         {
             // Read beginning of contents
             char listDelimiter = is.readBeginList("List");
@@ -283,7 +283,7 @@ void Foam::Module::LongList<T, Offset>::appendFromStream(Istream& is)
         setSize(origSize + size);
 
         // Read list contents depending on data format
-        if ((is.format() == IOstream::ASCII) || !contiguous<T>())
+        if ((is.format() == IOstream::ASCII) || !is_contiguous<T>::value)
         {
             // Read beginning of contents
             char listDelimiter = is.readBeginList("List");
diff --git a/meshLibrary/utilities/containers/LongList/LongList.H b/meshLibrary/utilities/containers/LongList/LongList.H
index cf1be65c3a9394b2dbfa4839ffaaa219f27162cb..cfa9efe125433f746f37a80824a7aee46bd8c346 100644
--- a/meshLibrary/utilities/containers/LongList/LongList.H
+++ b/meshLibrary/utilities/containers/LongList/LongList.H
@@ -148,7 +148,7 @@ public:
 
             //- Return the binary size in number of characters of the UList
             //  if the element is a primitive type
-            //  i.e. contiguous<T>() == true
+            //  i.e. is_contiguous<T>::value == true
             inline label byteSize() const;
 
 
diff --git a/meshLibrary/utilities/containers/LongList/LongListI.H b/meshLibrary/utilities/containers/LongList/LongListI.H
index 1a4667becf669a5e67c37631c0fc386a3b84109e..2906054ad157a84374b8b7078b1186b20e123e6e 100644
--- a/meshLibrary/utilities/containers/LongList/LongListI.H
+++ b/meshLibrary/utilities/containers/LongList/LongListI.H
@@ -218,7 +218,7 @@ inline Foam::label Foam::Module::LongList<T, Offset>::size() const
 template<class T, int Offset>
 inline Foam::label Foam::Module::LongList<T, Offset>::byteSize() const
 {
-    if (!contiguous<T>())
+    if (!is_contiguous<T>::value)
     {
         FatalErrorInFunction
             << "Cannot return the binary size of a list of "
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledMeshOctreeCubeCoordinates/labelledMeshOctreeCubeCoordinates.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledMeshOctreeCubeCoordinates/labelledMeshOctreeCubeCoordinates.H
index 481060d7bf549cb256a7ecb696873b9ccd488c7a..1ad49ff60bca11e8a9b10c67160a7c7d98606078 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledMeshOctreeCubeCoordinates/labelledMeshOctreeCubeCoordinates.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledMeshOctreeCubeCoordinates/labelledMeshOctreeCubeCoordinates.H
@@ -172,10 +172,11 @@ public:
 
 //- Data for labelledMeshOctreeCubeCoordinates are contiguous
 template<>
-inline bool contiguous<Module::labelledMeshOctreeCubeCoordinates>()
-{
-    return true;
-}
+struct is_contiguous<Module::labelledMeshOctreeCubeCoordinates>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPair/labelledPair.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPair/labelledPair.H
index ffb7061efc549409c3cb946ab3604fcd9d33cc1a..82a7765726ab58c9dfa318e1da7bc9450b8a443f 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPair/labelledPair.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPair/labelledPair.H
@@ -226,10 +226,11 @@ public:
 
 //- Data for labelledPair are contiguous
 template<>
-inline bool contiguous<Module::labelledPair>()
-{
-    return true;
-}
+struct is_contiguous<Module::labelledPair>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/labelledPoint.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/labelledPoint.H
index d18e524263b709f66c9b903a92bc12f5ae9fa4a7..3cc612701e07ca89d1f2089a5f21af0a5dd25e42 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/labelledPoint.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/labelledPoint.H
@@ -165,13 +165,11 @@ public:
 
 //- Data for labelledPoint are contiguous
 template<>
-inline bool contiguous<Module::labelledPoint>()
-{
-    return true;
-}
-
+struct is_contiguous<Module::labelledPoint>
+:
+    std::true_type
+{};
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/refLabelledPoint.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/refLabelledPoint.H
index 2c86029910e8a149a7f1f0d12905c1d1cf0b51e1..94b27bafe1d222182e2d94c76cc8f2f5205f1ab1 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/refLabelledPoint.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPoint/refLabelledPoint.H
@@ -152,10 +152,11 @@ public:
 
 //- Data for refLabelledPoint are contiguous
 template<>
-inline bool contiguous<Module::refLabelledPoint>()
-{
-    return true;
-}
+struct is_contiguous<Module::refLabelledPoint>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/labelledPointScalar.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/labelledPointScalar.H
index 083ac095906f5fb19146077de164522d75cdd4a5..668832cc6b0ccde7b99fc9120e9acf0f010a952f 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/labelledPointScalar.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/labelledPointScalar.H
@@ -188,10 +188,11 @@ public:
 
 //- Data for labelledPointScalar are contiguous
 template<>
-inline bool contiguous<Module::labelledPointScalar>()
-{
-    return true;
-}
+struct is_contiguous<Module::labelledPointScalar>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/refLabelledPointScalar.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/refLabelledPointScalar.H
index 09c8225b70b82e92b0f4ab8a42a1a09f6a7a0a9a..b240a2488ea9ecb1430729d646a3305d40e5cbda 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/refLabelledPointScalar.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledPointScalar/refLabelledPointScalar.H
@@ -160,10 +160,11 @@ public:
 
 //- Data for refLabelledPointScalar are contiguous
 template<>
-inline bool contiguous<Module::refLabelledPointScalar>()
-{
-    return true;
-}
+struct is_contiguous<Module::refLabelledPointScalar>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledScalar/labelledScalar.H b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledScalar/labelledScalar.H
index efc696a6576e462cc7ef6f8a477bddf0348737e1..a1f4ee1a7c7dae4e5853bddaaa72d19f359575da 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/labelledScalar/labelledScalar.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/labelledScalar/labelledScalar.H
@@ -197,10 +197,11 @@ public:
 
 //- Data for labelledScalar are contiguous
 template<>
-inline bool contiguous<Module::labelledScalar>()
-{
-    return true;
-}
+struct is_contiguous<Module::labelledScalar>
+:
+    std::true_type
+{};
+
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/meshOctreeCubeCoordinatesScalar/meshOctreeCubeCoordinatesScalar.H b/meshLibrary/utilities/helperClasses/parallelHelpers/meshOctreeCubeCoordinatesScalar/meshOctreeCubeCoordinatesScalar.H
index f8b81208eed325384c6a21ea3d50f721efecd0aa..338e120677c6df63c53e4195a566a34b1d5229fc 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/meshOctreeCubeCoordinatesScalar/meshOctreeCubeCoordinatesScalar.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/meshOctreeCubeCoordinatesScalar/meshOctreeCubeCoordinatesScalar.H
@@ -185,10 +185,11 @@ public:
 
 //- Data for meshOctreCubeCoordinatesScalar are contiguous
 template<>
-inline bool contiguous<Module::meshOctreeCubeCoordinatesScalar>()
-{
-    return true;
-}
+struct is_contiguous<Module::meshOctreeCubeCoordinatesScalar>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/parPartTet/parPartTet.H b/meshLibrary/utilities/helperClasses/parallelHelpers/parPartTet/parPartTet.H
index 7099dbae772fc62febecb36d52e2d0ce25d13fcc..2528d164ececb6999e0e3be6402e92de75a1c02b 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/parPartTet/parPartTet.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/parPartTet/parPartTet.H
@@ -135,10 +135,11 @@ public:
 
 //- Data for parPartTet are contiguous
 template<>
-inline bool contiguous<Module::parPartTet>()
-{
-    return true;
-}
+struct is_contiguous<Module::parPartTet>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/helperClasses/parallelHelpers/parTriFace/parTriFace.H b/meshLibrary/utilities/helperClasses/parallelHelpers/parTriFace/parTriFace.H
index 6a7a6a12153f09ca319124f31f12f48052ee78fb..de56cf45856601c64d968afea1b82723eabdb0d9 100644
--- a/meshLibrary/utilities/helperClasses/parallelHelpers/parTriFace/parTriFace.H
+++ b/meshLibrary/utilities/helperClasses/parallelHelpers/parTriFace/parTriFace.H
@@ -150,10 +150,10 @@ public:
 
 //- Data for parTriFace are contiguous
 template<>
-inline bool contiguous<Module::parTriFace>()
-{
-    return true;
-}
+struct is_contiguous<Module::parTriFace>
+:
+    std::true_type
+{};
 
 
 } // End namespace Foam
diff --git a/meshLibrary/utilities/helperFunctions/helperFunctionsPar.C b/meshLibrary/utilities/helperFunctions/helperFunctionsPar.C
index 088378d17693c92c4204c20d208684e93acccd47..78c58d792d7b0784f77010475fb7f45485b88441 100644
--- a/meshLibrary/utilities/helperFunctions/helperFunctionsPar.C
+++ b/meshLibrary/utilities/helperFunctions/helperFunctionsPar.C
@@ -143,7 +143,7 @@ void Foam::Module::help::exchangeMap
 {
     data.clear();
 
-    if (!contiguous<T>())
+    if (!is_contiguous<T>::value)
     {
         FatalError << "Data is not contiguous" << exit(FatalError);
     }
@@ -363,9 +363,9 @@ void Foam::Module::help::exchangeMap
 {
     mOut.clear();
 
-    if (!contiguous<T>())
+    if (!is_contiguous<T>::value)
     {
-        FatalError << "Data is not contigous" << exit(FatalError);
+        FatalError << "Data is not contiguous" << exit(FatalError);
     }
 
     typename std::map<label, ListType>::const_iterator iter;
diff --git a/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeBasic.H b/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeBasic.H
index 21a7cf63eff245b4ed2985ea99fbed7503b9952e..aff0a74438c39bd3a5416329716736dfec4467f3 100644
--- a/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeBasic.H
+++ b/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeBasic.H
@@ -149,10 +149,11 @@ public:
 
 //- Data for meshOctreeCubeBasic are contiguous
 template<>
-inline bool contiguous<Module::meshOctreeCubeBasic>()
-{
-    return true;
-}
+struct is_contiguous<Module::meshOctreeCubeBasic>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeCoordinates.H b/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeCoordinates.H
index 97ecb645f6c159a8b10569085d74b41f18b7ca7b..f930456fa2b452d9b9ecd55c19385784ab55845e 100644
--- a/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeCoordinates.H
+++ b/meshLibrary/utilities/octrees/meshOctree/meshOctreeCube/meshOctreeCubeCoordinates.H
@@ -240,10 +240,11 @@ public:
 
 //- Data for meshOctreeCubeCoordinates are contiguous
 template<>
-inline bool contiguous<Module::meshOctreeCubeCoordinates>()
-{
-    return true;
-}
+struct is_contiguous<Module::meshOctreeCubeCoordinates>
+:
+    std::true_type
+{};
+
 
 } // End namespace Foam
 
diff --git a/meshLibrary/utilities/surfaceTools/meshSurfaceMapper/parMapperHelper.H b/meshLibrary/utilities/surfaceTools/meshSurfaceMapper/parMapperHelper.H
index e3f8aed34bf88e9cbfc1eb41b88be67b5da3cea7..527e7260978e752c668b2a6b0b281c65d0eefa0d 100644
--- a/meshLibrary/utilities/surfaceTools/meshSurfaceMapper/parMapperHelper.H
+++ b/meshLibrary/utilities/surfaceTools/meshSurfaceMapper/parMapperHelper.H
@@ -177,12 +177,13 @@ public:
 
 } // End namespace Module
 
+
 //- Data for parMapperHelper are contiguous
 template<>
-inline bool contiguous<Module::parMapperHelper>()
-{
-    return true;
-}
+struct is_contiguous<Module::parMapperHelper>
+:
+    std::true_type
+{};
 
 
 } // End namespace Foam