From 3677b49d112786fd522ef7e88a6891010dbdb0e1 Mon Sep 17 00:00:00 2001 From: henry Date: Thu, 28 Jan 2010 14:46:54 +0000 Subject: [PATCH] pTraits: Added non-const access function to the value. --- src/OpenFOAM/primitives/Scalar/Scalar.H | 11 ++++++++-- src/OpenFOAM/primitives/bools/bool/bool.H | 10 ++++++++- src/OpenFOAM/primitives/ints/label/label.H | 10 ++++++++- src/OpenFOAM/primitives/ints/uLabel/uLabel.H | 10 ++++++++- src/OpenFOAM/primitives/pTraits/pTraits.H | 33 ++++++++++++++++++++-------- 5 files changed, 60 insertions(+), 14 deletions(-) diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H index b464e7fd..58801f23 100644 --- a/src/OpenFOAM/primitives/Scalar/Scalar.H +++ b/src/OpenFOAM/primitives/Scalar/Scalar.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -55,6 +55,7 @@ public: nComponents = 1 // Number of components in Scalar is 1 }; + // Static data members static const char* const typeName; @@ -64,6 +65,7 @@ public: static const Scalar max; static const Scalar min; + // Constructors //- Construct from Scalar @@ -76,12 +78,17 @@ public: pTraits(Istream&); - // Member Functions + // Member operators operator Scalar() const { return p_; } + + operator Scalar&() + { + return p_; + } }; diff --git a/src/OpenFOAM/primitives/bools/bool/bool.H b/src/OpenFOAM/primitives/bools/bool/bool.H index a9fac034..7d3c208d 100644 --- a/src/OpenFOAM/primitives/bools/bool/bool.H +++ b/src/OpenFOAM/primitives/bools/bool/bool.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -81,6 +81,7 @@ public: nComponents = 1 // Number of components in bool is 1 }; + // Static data members static const char* const typeName; @@ -88,6 +89,7 @@ public: static const bool zero; static const bool one; + // Constructors //- Construct from bool @@ -99,12 +101,18 @@ public: //- Construct from Istream pTraits(Istream&); + // Member Functions operator bool() const { return p_; } + + operator bool&() + { + return p_; + } }; diff --git a/src/OpenFOAM/primitives/ints/label/label.H b/src/OpenFOAM/primitives/ints/label/label.H index 80ee4846..7790bf31 100644 --- a/src/OpenFOAM/primitives/ints/label/label.H +++ b/src/OpenFOAM/primitives/ints/label/label.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -153,6 +153,7 @@ public: nComponents = 1 // Number of components in label is 1 }; + // Static data members static const char* const typeName; @@ -162,6 +163,7 @@ public: static const label min; static const label max; + // Constructors //- Construct from label @@ -173,12 +175,18 @@ public: //- Construct from Istream pTraits(Istream&); + // Member Functions operator label() const { return p_; } + + operator label&() + { + return p_; + } }; diff --git a/src/OpenFOAM/primitives/ints/uLabel/uLabel.H b/src/OpenFOAM/primitives/ints/uLabel/uLabel.H index 91d4725e..5583a3e5 100644 --- a/src/OpenFOAM/primitives/ints/uLabel/uLabel.H +++ b/src/OpenFOAM/primitives/ints/uLabel/uLabel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -137,6 +137,7 @@ public: nComponents = 1 // Number of components in uLabel is 1 }; + // Static data members static const char* const typeName; @@ -146,6 +147,7 @@ public: static const uLabel max; static const uLabel min; + // Constructors //- Construct from uLabel @@ -157,12 +159,18 @@ public: //- Construct from Istream pTraits(Istream&); + // Member Functions operator uLabel() const { return p_; } + + operator uLabel&() + { + return p_; + } }; diff --git a/src/OpenFOAM/primitives/pTraits/pTraits.H b/src/OpenFOAM/primitives/pTraits/pTraits.H index 98a3df7e..1712f274 100644 --- a/src/OpenFOAM/primitives/pTraits/pTraits.H +++ b/src/OpenFOAM/primitives/pTraits/pTraits.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -54,15 +54,30 @@ class pTraits public: - pTraits(const PrimitiveType& p) - : - PrimitiveType(p) - {} + // Constructors - pTraits(Istream& is) - : - PrimitiveType(is) - {} + pTraits(const PrimitiveType& p) + : + PrimitiveType(p) + {} + + pTraits(Istream& is) + : + PrimitiveType(is) + {} + + + // Member operators + + operator PrimitiveType() const + { + return *this; + } + + operator PrimitiveType&() + { + return *this; + } }; -- 2.11.4.GIT