This allows for partial specialisation, so the different variants of the global IO containers do not need the function to be overloaded for each contained type. This also fixes an ommission in providing overloads of these functions for some of the global IO containers. Resolves bug report https://bugs.openfoam.org/view.php?id=3890
89 lines
2.5 KiB
C++
89 lines
2.5 KiB
C++
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration | Website: https://openfoam.org
|
|
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
|
\\/ M anipulation |
|
|
-------------------------------------------------------------------------------
|
|
License
|
|
This file is part of OpenFOAM.
|
|
|
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
Class
|
|
Foam::GlobalIOField
|
|
|
|
Description
|
|
A primitive field of type \<Type\> with automated input and output.
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef GlobalIOField_H
|
|
#define GlobalIOField_H
|
|
|
|
#include "GlobalIOList.H"
|
|
#include "Field.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
|
|
/*---------------------------------------------------------------------------*\
|
|
Class GlobalIOField Declaration
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
template<class Type>
|
|
class GlobalIOField
|
|
:
|
|
public GlobalIOListBase<Field, GlobalIOField, Type>
|
|
{
|
|
|
|
public:
|
|
|
|
//- Runtime type information
|
|
TypeName("Field");
|
|
|
|
|
|
// Constructors
|
|
|
|
//- Inherit constructors
|
|
using GlobalIOListBase<Field, GlobalIOField, Type>::GlobalIOListBase;
|
|
|
|
|
|
// Member Operators
|
|
|
|
//- Inherit assignment operators
|
|
using GlobalIOListBase<Field, GlobalIOField, Type>::operator=;
|
|
};
|
|
|
|
|
|
//- Trait for obtaining global status
|
|
template<class Type>
|
|
struct typeGlobal<GlobalIOField<Type>>
|
|
{
|
|
static const bool global = true;
|
|
};
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace Foam
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#endif
|
|
|
|
// ************************************************************************* //
|