From 1be96a546c71a754b3d34e78cc6cc59883aa2966 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 30 May 2016 13:21:29 +0100
Subject: [PATCH] Added forward declaration of friend functions

---
 .../phasePair/phasePairKey/phasePairKey.H         | 13 ++++++++++++-
 .../phasePair/phasePairKey/phasePairKey.H         | 13 ++++++++++++-
 .../indexedVertex/indexedVertexEnum.H             | 11 +++--------
 src/OpenFOAM/db/typeInfo/typeInfo.H               |  3 ++-
 .../mapPolyMesh/mapDistribute/mapDistribute.H     |  9 +++++++++
 .../mapPolyMesh/mapDistribute/mapDistributeBase.H |  9 +++++++++
 .../mapDistribute/mapDistributePolyMesh.H         |  9 +++++++++
 .../polyMeshTetDecomposition/tetIndices.H         |  8 ++++++++
 src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H   | 13 ++++++++++++-
 src/conversion/ensight/part/ensightPart.H         |  8 ++++++++
 src/conversion/ensight/part/ensightParts.H        |  7 +++++++
 .../directions/directionInfo/directionInfo.H      |  9 +++++++++
 src/dynamicMesh/meshCut/refineCell/refineCell.H   | 11 +++++++----
 .../wallNormalInfo/wallNormalInfo.H               |  9 +++++++++
 .../pointPatchDist/externalPointEdgePoint.H       |  9 +++++++++
 .../polyMeshModifier/polyMeshModifier.H           | 10 +++++++++-
 .../polyTopoChange/hexRef8/refinementHistory.H    | 13 +++++++++++++
 .../pointEdgeCollapse/pointEdgeCollapse.H         |  9 +++++++++
 .../polyTopoChange/refinementData.H               |  9 +++++++++
 .../polyTopoChange/refinementDistanceData.H       |  9 +++++++++
 src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H  |  7 +++++++
 .../field/nearWallFields/findCellParticle.H       |  8 ++++++++
 .../field/streamLine/streamLineParticle.H         |  8 ++++++++
 .../wallBoundedStreamLine/wallBoundedParticle.H   |  8 ++++++++
 .../wallBoundedStreamLineParticle.H               |  8 ++++++++
 .../layeredSolver/pointEdgeStructuredWalk.H       |  9 +++++++++
 .../phaseProperties/phaseProperties.H             | 10 +++++++++-
 .../ParticleForces/forceSuSp/forceSuSp.H          |  7 +++++--
 .../distribution/distribution.H                   |  7 +++++++
 .../molecule/molecule/molecule.H                  |  8 ++++++++
 .../molecule/reducedUnits/reducedUnits.H          |  9 ++++++++-
 src/lagrangian/solidParticle/solidParticle.H      |  8 ++++++++
 .../meshRefinement/patchFaceOrientation.H         |  9 +++++++++
 .../snappyHexMeshDriver/pointData/pointData.H     |  8 ++++++++
 .../trackedParticle/trackedParticle.H             |  8 ++++++++
 .../meshStructure/pointTopoDistanceData.H         |  9 +++++++++
 src/meshTools/meshStructure/topoDistanceData.H    |  9 +++++++++
 .../decompositionMethod/minData.H                 |  9 +++++++++
 .../solidArrheniusReactionRate.H                  |  9 ++++++++-
 .../ArrheniusReactionRate/ArrheniusReactionRate.H |  9 ++++++++-
 .../JanevReactionRate/JanevReactionRate.H         |  9 ++++++++-
 .../LandauTellerReactionRate.H                    |  9 ++++++++-
 .../LangmuirHinshelwoodReactionRate.H             |  9 ++++++++-
 .../infiniteReactionRate/infiniteReactionRate.H   |  9 ++++++++-
 .../powerSeries/powerSeriesReactionRate.H         |  9 ++++++++-
 .../thirdBodyArrheniusReactionRate.H              |  9 ++++++++-
 src/thermophysicalModels/specie/specie/specie.H   | 15 ++++++++++++---
 47 files changed, 395 insertions(+), 32 deletions(-)

diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H
index b5d6acf07be..88d8a94009d 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H
+++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phasePair/phasePairKey/phasePairKey.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,6 +40,17 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class phasePairKey;
+
+bool operator==(const phasePairKey&, const phasePairKey&);
+bool operator!=(const phasePairKey&, const phasePairKey&);
+
+Istream& operator>>(Istream&, phasePairKey&);
+Ostream& operator<<(Ostream&, const phasePairKey&);
+
+
 /*---------------------------------------------------------------------------*\
                          Class phasePairKey Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phasePair/phasePairKey/phasePairKey.H b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phasePair/phasePairKey/phasePairKey.H
index d514d6406ca..5ef17faa759 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phasePair/phasePairKey/phasePairKey.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/phasePair/phasePairKey/phasePairKey.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2014-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,6 +40,17 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class phasePairKey;
+
+bool operator==(const phasePairKey&, const phasePairKey&);
+bool operator!=(const phasePairKey&, const phasePairKey&);
+
+Istream& operator>>(Istream&, phasePairKey&);
+Ostream& operator<<(Ostream&, const phasePairKey&);
+
+
 /*---------------------------------------------------------------------------*\
                          Class phasePairKey Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/indexedVertex/indexedVertexEnum.H b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/indexedVertex/indexedVertexEnum.H
index 3c5e9b27372..581bcf80a6e 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/indexedVertex/indexedVertexEnum.H
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/indexedVertex/indexedVertexEnum.H
@@ -41,14 +41,6 @@ SourceFiles
 namespace Foam
 {
 
-// Forward declaration of friend functions and operators
-
-class indexedVertexEnum;
-
-Istream& operator>>(Istream&, indexedVertexEnum&);
-Ostream& operator<<(Ostream&, const indexedVertexEnum&);
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 class indexedVertexEnum
@@ -90,6 +82,9 @@ public:
 };
 
 
+Istream& operator>>(Istream&, indexedVertexEnum::vertexType&);
+Ostream& operator<<(Ostream&, const indexedVertexEnum::vertexType&);
+
 template<>
 inline bool contiguous<indexedVertexEnum>()
 {
diff --git a/src/OpenFOAM/db/typeInfo/typeInfo.H b/src/OpenFOAM/db/typeInfo/typeInfo.H
index c4379036c2a..71155aeb8ff 100644
--- a/src/OpenFOAM/db/typeInfo/typeInfo.H
+++ b/src/OpenFOAM/db/typeInfo/typeInfo.H
@@ -133,7 +133,8 @@ inline bool isType(const Type& t)
 template<class TestType, class Type>
 inline bool isA(const Type& t)
 {
-    return dynamic_cast<const TestType*>(&t);
+    const Type* tPtr = &t;
+    return dynamic_cast<const TestType*>(tPtr);
 }
 
 
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H
index 50e3095002e..e6be2e9db2f 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H
@@ -145,6 +145,15 @@ namespace Foam
 
 class globalIndexAndTransform;
 
+
+// Forward declaration of friend functions and operators
+
+class mapDistribute;
+
+Istream& operator>>(Istream&, mapDistribute&);
+Ostream& operator<<(Ostream&, const mapDistribute&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class mapDistribute Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
index fe9a9be6159..70799428155 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributeBase.H
@@ -85,6 +85,15 @@ class mapPolyMesh;
 class globalIndex;
 class PstreamBuffers;
 
+
+// Forward declaration of friend functions and operators
+
+class mapDistributeBase;
+
+Istream& operator>>(Istream&, mapDistributeBase&);
+Ostream& operator<<(Ostream&, const mapDistributeBase&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class mapDistributeBase Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.H
index ed827fe6c38..9ac7b9f356b 100644
--- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.H
+++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistributePolyMesh.H
@@ -51,6 +51,15 @@ namespace Foam
 class mapPolyMesh;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class mapDistributePolyMesh;
+
+Istream& operator>>(Istream&, mapDistributePolyMesh&);
+Ostream& operator<<(Ostream&, const mapDistributePolyMesh&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class mapDistributePolyMesh Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H
index d33d5f98b73..9c4bdcad5bc 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyMeshTetDecomposition/tetIndices.H
@@ -67,6 +67,14 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class tetIndices;
+
+Istream& operator>>(Istream&, tetIndices&);
+Ostream& operator<<(Ostream&, const tetIndices&);
+
+
 /*---------------------------------------------------------------------------*\
                          Class tetIndices Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H
index 24a68e8fd4f..7632b15fa12 100644
--- a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H
+++ b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H
@@ -69,6 +69,18 @@ namespace Foam
 
 class Random;
 
+
+// Forward declaration of friend functions and operators
+
+class treeBoundBox;
+
+bool operator==(const treeBoundBox&, const treeBoundBox&);
+bool operator!=(const treeBoundBox&, const treeBoundBox&);
+
+Istream& operator>>(Istream& is, treeBoundBox&);
+Ostream& operator<<(Ostream& os, const treeBoundBox&);
+
+
 /*---------------------------------------------------------------------------*\
                         Class treeBoundBox Declaration
 \*---------------------------------------------------------------------------*/
@@ -346,7 +358,6 @@ public:
 
         friend Istream& operator>>(Istream& is, treeBoundBox&);
         friend Ostream& operator<<(Ostream& os, const treeBoundBox&);
-
 };
 
 
diff --git a/src/conversion/ensight/part/ensightPart.H b/src/conversion/ensight/part/ensightPart.H
index feb6d371baf..9220692ac43 100644
--- a/src/conversion/ensight/part/ensightPart.H
+++ b/src/conversion/ensight/part/ensightPart.H
@@ -51,6 +51,14 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class ensightPart;
+
+Ostream& operator<<(Ostream&, const ensightPart&);
+ensightGeoFile& operator<<(ensightGeoFile&, const ensightPart&);
+
+
 /*---------------------------------------------------------------------------*\
                          Class ensightPart Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/conversion/ensight/part/ensightParts.H b/src/conversion/ensight/part/ensightParts.H
index 68c18774bab..fd33238b1d4 100644
--- a/src/conversion/ensight/part/ensightParts.H
+++ b/src/conversion/ensight/part/ensightParts.H
@@ -46,6 +46,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class ensightParts;
+
+ensightGeoFile& operator<<(ensightGeoFile&, const ensightParts&);
+
+
 /*---------------------------------------------------------------------------*\
                        Class ensightParts Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.H b/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.H
index 96021c7217f..3dbe50f4f5a 100644
--- a/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.H
+++ b/src/dynamicMesh/meshCut/directions/directionInfo/directionInfo.H
@@ -69,6 +69,15 @@ class edge;
 class face;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class directionInfo;
+
+Istream& operator>>(Istream&, directionInfo&);
+Ostream& operator<<(Ostream&, const directionInfo&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class directionInfo Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/meshCut/refineCell/refineCell.H b/src/dynamicMesh/meshCut/refineCell/refineCell.H
index 58bf0de9342..226dd826b2a 100644
--- a/src/dynamicMesh/meshCut/refineCell/refineCell.H
+++ b/src/dynamicMesh/meshCut/refineCell/refineCell.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,8 +43,12 @@ SourceFiles
 namespace Foam
 {
 
-class Istream;
-class Ostream;
+// Forward declaration of friend functions and operators
+
+class refineCell;
+
+Ostream& operator<<(Ostream&, const refineCell&);
+
 
 /*---------------------------------------------------------------------------*\
                            Class refineCell Declaration
@@ -123,4 +127,3 @@ public:
 #endif
 
 // ************************************************************************* //
-
diff --git a/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.H b/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.H
index 6940560b632..587fc95da21 100644
--- a/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.H
+++ b/src/dynamicMesh/meshCut/wallLayerCells/wallNormalInfo/wallNormalInfo.H
@@ -51,6 +51,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class wallNormalInfo;
+
+Istream& operator>>(Istream&, wallNormalInfo&);
+Ostream& operator<<(Ostream&, const wallNormalInfo&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class wallNormalInfo Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/pointPatchDist/externalPointEdgePoint.H b/src/dynamicMesh/pointPatchDist/externalPointEdgePoint.H
index 22482dd9c13..1735252269b 100644
--- a/src/dynamicMesh/pointPatchDist/externalPointEdgePoint.H
+++ b/src/dynamicMesh/pointPatchDist/externalPointEdgePoint.H
@@ -49,6 +49,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class externalPointEdgePoint;
+
+Istream& operator>>(Istream&, externalPointEdgePoint&);
+Ostream& operator<<(Ostream&, const externalPointEdgePoint&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class externalPointEdgePoint Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.H b/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.H
index e5466d7c8f9..aadf811f3e3 100644
--- a/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.H
+++ b/src/dynamicMesh/polyTopoChange/polyMeshModifier/polyMeshModifier.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -55,6 +55,14 @@ class polyTopoChanger;
 class polyTopoChange;
 class mapPolyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class polyMeshModifier;
+
+Ostream& operator<<(Ostream&, const polyMeshModifier&);
+
+
 /*---------------------------------------------------------------------------*\
                        Class polyMeshModifier Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.H
index 88665a56e39..72ed8ea59fe 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.H
@@ -88,6 +88,15 @@ namespace Foam
 class mapPolyMesh;
 class mapDistributePolyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class refinementHistory;
+
+Istream& operator>>(Istream&, refinementHistory&);
+Ostream& operator<<(Ostream&, const refinementHistory&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class refinementHistory Declaration
 \*---------------------------------------------------------------------------*/
@@ -402,6 +411,10 @@ public:
 };
 
 
+Istream& operator>>(Istream&, refinementHistory::splitCell8&);
+Ostream& operator<<(Ostream&, const refinementHistory::splitCell8&);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/pointEdgeCollapse/pointEdgeCollapse.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/pointEdgeCollapse/pointEdgeCollapse.H
index e9cc990c29a..c83363c24b3 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/pointEdgeCollapse/pointEdgeCollapse.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/pointEdgeCollapse/pointEdgeCollapse.H
@@ -48,6 +48,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class pointEdgeCollapse;
+
+Istream& operator>>(Istream&, pointEdgeCollapse&);
+Ostream& operator<<(Ostream&, const pointEdgeCollapse&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class pointEdgeCollapse Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.H
index 8b8a3b64b6b..8a08394cace 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementData.H
@@ -48,6 +48,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class refinementData;
+
+Istream& operator>>(Istream&, refinementData&);
+Ostream& operator<<(Ostream&, const refinementData&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class refinementData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementDistanceData.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementDistanceData.H
index 32a5f1f3515..15215ca5f5d 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementDistanceData.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementDistanceData.H
@@ -48,6 +48,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class refinementDistanceData;
+
+Istream& operator>>(Istream&, refinementDistanceData&);
+Ostream& operator<<(Ostream&, const refinementDistanceData&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class refinementDistanceData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H b/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
index 757097c9fd4..2c407e082a4 100644
--- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
+++ b/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.H
@@ -71,10 +71,13 @@ class surfaceFeatures;
 class objectRegistry;
 
 // Forward declaration of friend functions and operators
+
 class extendedEdgeMesh;
+
 Istream& operator>>(Istream&, extendedEdgeMesh&);
 Ostream& operator<<(Ostream&, const extendedEdgeMesh&);
 
+
 /*---------------------------------------------------------------------------*\
                        Class extendedEdgeMesh Declaration
 \*---------------------------------------------------------------------------*/
@@ -540,6 +543,10 @@ public:
 };
 
 
+Istream& operator>>(Istream& is, extendedEdgeMesh::sideVolumeType& vt);
+Ostream& operator<<(Ostream& os, const extendedEdgeMesh::sideVolumeType& vt);
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/functionObjects/field/nearWallFields/findCellParticle.H b/src/functionObjects/field/nearWallFields/findCellParticle.H
index 80d3a5bf6ae..e239289063e 100644
--- a/src/functionObjects/field/nearWallFields/findCellParticle.H
+++ b/src/functionObjects/field/nearWallFields/findCellParticle.H
@@ -45,6 +45,14 @@ namespace Foam
 
 class findCellParticleCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class findCellParticle;
+
+Ostream& operator<<(Ostream&, const findCellParticle&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class findCellParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/functionObjects/field/streamLine/streamLineParticle.H b/src/functionObjects/field/streamLine/streamLineParticle.H
index 8ecde3fad4f..bcb4fd68c26 100644
--- a/src/functionObjects/field/streamLine/streamLineParticle.H
+++ b/src/functionObjects/field/streamLine/streamLineParticle.H
@@ -48,6 +48,14 @@ namespace Foam
 
 class streamLineParticleCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class streamLineParticle;
+
+Ostream& operator<<(Ostream&, const streamLineParticle&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class streamLineParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
index ccfbe856b43..5cb12015334 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedParticle.H
@@ -46,6 +46,14 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class wallBoundedParticle;
+
+Ostream& operator<<(Ostream&, const wallBoundedParticle&);
+Ostream& operator<<(Ostream&, const InfoProxy<wallBoundedParticle>&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class wallBoundedParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
index f84402bd638..b0f20d18cbc 100644
--- a/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
+++ b/src/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLineParticle.H
@@ -49,6 +49,14 @@ namespace Foam
 
 class wallBoundedStreamLineParticleCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class wallBoundedStreamLineParticle;
+
+Ostream& operator<<(Ostream&, const wallBoundedStreamLineParticle&);
+
+
 /*---------------------------------------------------------------------------*\
                  Class wallBoundedStreamLineParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/layeredSolver/pointEdgeStructuredWalk.H b/src/fvMotionSolver/fvMotionSolvers/displacement/layeredSolver/pointEdgeStructuredWalk.H
index 387217ca913..d89f0e03fdf 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/layeredSolver/pointEdgeStructuredWalk.H
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/layeredSolver/pointEdgeStructuredWalk.H
@@ -48,6 +48,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class pointEdgeStructuredWalk;
+
+Istream& operator>>(Istream&, pointEdgeStructuredWalk&);
+Ostream& operator<<(Ostream&, const pointEdgeStructuredWalk&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class pointEdgeStructuredWalk Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/lagrangian/intermediate/phaseProperties/phaseProperties/phaseProperties.H b/src/lagrangian/intermediate/phaseProperties/phaseProperties/phaseProperties.H
index 334f0e6d467..2d775a74154 100644
--- a/src/lagrangian/intermediate/phaseProperties/phaseProperties/phaseProperties.H
+++ b/src/lagrangian/intermediate/phaseProperties/phaseProperties/phaseProperties.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,6 +46,14 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class phaseProperties;
+
+Istream& operator>>(Istream&, phaseProperties&);
+Ostream& operator<<(Ostream&, const phaseProperties&);
+
+
 /*---------------------------------------------------------------------------*\
                       Class phaseProperties Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/forceSuSp/forceSuSp.H b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/forceSuSp/forceSuSp.H
index 5522514912c..df57b2ff4fe 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/forceSuSp/forceSuSp.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/forceSuSp/forceSuSp.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,9 +48,12 @@ namespace Foam
 {
 
 // Forward declaration of friend functions
+
 class forceSuSp;
+
 inline forceSuSp operator+(const forceSuSp& susp1, const forceSuSp& susp2);
-inline forceSuSp operator*(const forceSuSp& susp, const scalar s);
+inline forceSuSp operator*(const scalar s, const forceSuSp& susp);
+
 
 /*---------------------------------------------------------------------------*\
                           Class forceSuSp Declaration
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.H b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.H
index db3fe62f21b..840b1b253f3 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.H
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.H
@@ -45,6 +45,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class distribution;
+
+Ostream& operator<<(Ostream&, const distribution&);
+
+
 /*---------------------------------------------------------------------------*\
                         Class distribution Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
index 754f3a51efc..a54c8744952 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
@@ -50,6 +50,14 @@ namespace Foam
 // Class forward declarations
 class moleculeCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class molecule;
+
+Ostream& operator<<(Ostream&, const molecule&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class molecule Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.H b/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.H
index 8319bf50bc4..51c713a5b31 100644
--- a/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.H
+++ b/src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,6 +44,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class reducedUnits;
+
+Ostream& operator<<(Ostream&, const reducedUnits&);
+
+
 /*---------------------------------------------------------------------------*\
                          Class reducedUnits Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/lagrangian/solidParticle/solidParticle.H b/src/lagrangian/solidParticle/solidParticle.H
index ae848b6ef9f..72af01cf281 100644
--- a/src/lagrangian/solidParticle/solidParticle.H
+++ b/src/lagrangian/solidParticle/solidParticle.H
@@ -51,6 +51,14 @@ namespace Foam
 
 class solidParticleCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class solidParticle;
+
+Ostream& operator<<(Ostream&, const solidParticle&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class solidParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/mesh/snappyHexMesh/meshRefinement/patchFaceOrientation.H b/src/mesh/snappyHexMesh/meshRefinement/patchFaceOrientation.H
index b43951d8086..8370cd24fa0 100644
--- a/src/mesh/snappyHexMesh/meshRefinement/patchFaceOrientation.H
+++ b/src/mesh/snappyHexMesh/meshRefinement/patchFaceOrientation.H
@@ -47,6 +47,15 @@ namespace Foam
 // Forward declaration of classes
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class patchFaceOrientation;
+
+Istream& operator>>(Istream&, patchFaceOrientation&);
+Ostream& operator<<(Ostream&, const patchFaceOrientation&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class patchFaceOrientation Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/pointData/pointData.H b/src/mesh/snappyHexMesh/snappyHexMeshDriver/pointData/pointData.H
index d46dbcc184b..f2b9424b049 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/pointData/pointData.H
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/pointData/pointData.H
@@ -47,6 +47,14 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class pointData;
+
+Istream& operator>>(Istream&, pointData&);
+Ostream& operator<<(Ostream&, const pointData&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class pointData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H
index 0281c20bd16..a1951c4196a 100644
--- a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H
+++ b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H
@@ -46,6 +46,14 @@ namespace Foam
 
 class trackedParticleCloud;
 
+
+// Forward declaration of friend functions and operators
+
+class trackedParticle;
+
+Ostream& operator<<(Ostream&, const trackedParticle&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class trackedParticle Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/meshTools/meshStructure/pointTopoDistanceData.H b/src/meshTools/meshStructure/pointTopoDistanceData.H
index 48bb8cfaa35..174f106d8ab 100644
--- a/src/meshTools/meshStructure/pointTopoDistanceData.H
+++ b/src/meshTools/meshStructure/pointTopoDistanceData.H
@@ -48,6 +48,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class pointTopoDistanceData;
+
+Istream& operator>>(Istream&, pointTopoDistanceData&);
+Ostream& operator<<(Ostream&, const pointTopoDistanceData&);
+
+
 /*---------------------------------------------------------------------------*\
                        Class pointTopoDistanceData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/meshTools/meshStructure/topoDistanceData.H b/src/meshTools/meshStructure/topoDistanceData.H
index ae3d7f8378f..5b9b7e6b219 100644
--- a/src/meshTools/meshStructure/topoDistanceData.H
+++ b/src/meshTools/meshStructure/topoDistanceData.H
@@ -47,6 +47,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class topoDistanceData;
+
+Istream& operator>>(Istream&, topoDistanceData&);
+Ostream& operator<<(Ostream&, const topoDistanceData&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class topoDistanceData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/minData.H b/src/parallel/decompose/decompositionMethods/decompositionMethod/minData.H
index 63c80248d20..eec98098ded 100644
--- a/src/parallel/decompose/decompositionMethods/decompositionMethod/minData.H
+++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/minData.H
@@ -46,6 +46,15 @@ namespace Foam
 class polyPatch;
 class polyMesh;
 
+
+// Forward declaration of friend functions and operators
+
+class minData;
+
+Istream& operator>>(Istream&, minData&);
+Ostream& operator<<(Ostream&, const minData&);
+
+
 /*---------------------------------------------------------------------------*\
                            Class minData Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
index 8569b44e224..1a734a96dbb 100644
--- a/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
+++ b/src/thermophysicalModels/solidSpecie/reaction/reactionRate/solidArrheniusReactionRate/solidArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class solidArrheniusReactionRate;
+
+Ostream& operator<<(Ostream&, const solidArrheniusReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                        Class solidArrheniusReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
index 4cbbe8ddf8c..deb1bb2ebde 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/ArrheniusReactionRate/ArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,6 +45,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class ArrheniusReactionRate;
+
+Ostream& operator<<(Ostream&, const ArrheniusReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                     Class ArrheniusReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
index b08de456834..bf3d10c6b90 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/JanevReactionRate/JanevReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,6 +44,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class JanevReactionRate;
+
+Ostream& operator<<(Ostream&, const JanevReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                      Class JanevReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
index 813da3831ef..cba8b20cb8a 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LandauTellerReactionRate/LandauTellerReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class LandauTellerReactionRate;
+
+Ostream& operator<<(Ostream&, const LandauTellerReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                    Class LandauTellerReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
index 5bf3eb15e3c..e96f9ea20cc 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/LangmuirHinshelwood/LangmuirHinshelwoodReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class LangmuirHinshelwoodReactionRate;
+
+Ostream& operator<<(Ostream&, const LangmuirHinshelwoodReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                Class LangmuirHinshelwoodReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
index cbe25ecff35..47dde38b49c 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/infiniteReactionRate/infiniteReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class infiniteReactionRate;
+
+Ostream& operator<<(Ostream&, const infiniteReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                     Class infiniteReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
index 7c106182254..a8561815be6 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/powerSeries/powerSeriesReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,6 +44,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class powerSeriesReactionRate;
+
+Ostream& operator<<(Ostream&, const powerSeriesReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
                    Class powerSeriesReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
index 2321772c7c0..9e7599ac734 100644
--- a/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
+++ b/src/thermophysicalModels/specie/reaction/reactionRate/thirdBodyArrheniusReactionRate/thirdBodyArrheniusReactionRate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,6 +43,13 @@ SourceFiles
 namespace Foam
 {
 
+// Forward declaration of friend functions and operators
+
+class thirdBodyArrheniusReactionRate;
+
+Ostream& operator<<(Ostream&, const thirdBodyArrheniusReactionRate&);
+
+
 /*---------------------------------------------------------------------------*\
               Class thirdBodyArrheniusReactionRate Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/specie/specie/specie.H b/src/thermophysicalModels/specie/specie/specie.H
index ea76fb2426f..28d7290818b 100644
--- a/src/thermophysicalModels/specie/specie/specie.H
+++ b/src/thermophysicalModels/specie/specie/specie.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,8 +48,17 @@ using namespace Foam::constant::thermodynamic;
 namespace Foam
 {
 
-class Istream;
-class Ostream;
+// Forward declaration of friend functions and operators
+
+class specie;
+
+inline specie operator+(const specie&, const specie&);
+inline specie operator-(const specie&, const specie&);
+inline specie operator*(const scalar, const specie&);
+inline specie operator==(const specie&, const specie&);
+
+Ostream& operator<<(Ostream&, const specie&);
+
 
 /*---------------------------------------------------------------------------*\
                            Class specie Declaration
-- 
GitLab