From 1d62b6274e264b442704a965d91101458201afa4 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Thu, 10 Apr 2025 15:57:43 +0200 Subject: [PATCH] COMP: add <numeric> to stdFoam.H - useful to have std::reduce(), std::transform_reduce() available in more places, so treat like <algorithm> and include in "stdFoam.H" STYLE: add 'stricter' detection markers for cast of SubList to List etc. STYLE: remove 'const' qualifier from Foam:one/Foam::zero (in Field) --- applications/test/FixedList/Make/files | 2 +- .../{Test-FixedList.C => Test-FixedList.cxx} | 1 - applications/test/List/Test-List.cxx | 1 - applications/test/ListRead1/Make/files | 2 +- applications/test/ListRead1/Test-ListRead1.C | 1 - applications/test/SubField/Make/files | 2 +- .../SubField/{Test-SubField.C => Test-SubField.cxx} | 1 - applications/test/charList/Make/files | 2 +- .../charList/{Test-charList.C => Test-charList.cxx} | 2 -- applications/test/checkIOspeed/Test-checkIOspeed.cxx | 2 -- .../mesh/manipulation/stitchMesh/stitchMesh.C | 1 - src/OpenFOAM/containers/Lists/List/SubList.H | 6 +++++- src/OpenFOAM/containers/Lists/List/SubListI.H | 7 ------- src/OpenFOAM/containers/Lists/List/UList.H | 2 +- src/OpenFOAM/expressions/value/exprValue.H | 2 +- src/OpenFOAM/expressions/value/exprValueFieldTag.H | 2 +- .../DimensionedField/DimensionedFieldFunctions.C | 6 +++--- .../DimensionedField/DimensionedFieldFunctions.H | 6 +++--- .../fields/FieldFields/FieldField/FieldField.C | 2 +- .../fields/FieldFields/FieldField/FieldField.H | 2 +- src/OpenFOAM/fields/Fields/Field/Field.H | 12 ++++++------ src/OpenFOAM/fields/Fields/Field/FieldI.H | 12 +++++------- src/OpenFOAM/fields/Fields/Field/SubField.H | 10 ++++++++-- src/OpenFOAM/fields/Fields/Field/SubFieldI.H | 9 +-------- .../GeometricField/GeometricFieldFunctions.C | 6 +++--- .../GeometricField/GeometricFieldFunctions.H | 6 +++--- src/OpenFOAM/include/stdFoam.H | 3 ++- .../matrices/DiagonalMatrix/DiagonalMatrix.H | 1 - src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H | 1 - .../lduMatrix/solvers/GAMG/GAMGSolverSolve.C | 11 +++++------ src/OpenFOAM/meshes/boundBox/boundBox.H | 4 ++-- src/OpenFOAM/meshes/boundBox/boundBoxI.H | 4 ++-- src/OpenFOAM/meshes/ijkMesh/IjkField.H | 4 ++-- src/OpenFOAM/meshes/ijkMesh/IjkFieldI.H | 6 +++--- .../meshes/polyMesh/syncTools/syncToolsTemplates.C | 8 ++++++-- src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H | 2 +- src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H | 4 ++-- src/OpenFOAM/primitives/Scalar/scalarImpl.H | 2 +- src/OpenFOAM/primitives/ranges/MinMax/MinMaxOps.H | 2 +- src/conversion/vtk/adaptor/foamVtkToolsI.H | 2 -- src/fileFormats/ensight/part/faces/ensightFaces.C | 10 +++++----- 41 files changed, 78 insertions(+), 93 deletions(-) rename applications/test/FixedList/{Test-FixedList.C => Test-FixedList.cxx} (99%) rename applications/test/SubField/{Test-SubField.C => Test-SubField.cxx} (99%) rename applications/test/charList/{Test-charList.C => Test-charList.cxx} (99%) diff --git a/applications/test/FixedList/Make/files b/applications/test/FixedList/Make/files index dcfee8af133..cd58141078e 100644 --- a/applications/test/FixedList/Make/files +++ b/applications/test/FixedList/Make/files @@ -1,3 +1,3 @@ -Test-FixedList.C +Test-FixedList.cxx EXE = $(FOAM_USER_APPBIN)/Test-FixedList diff --git a/applications/test/FixedList/Test-FixedList.C b/applications/test/FixedList/Test-FixedList.cxx similarity index 99% rename from applications/test/FixedList/Test-FixedList.C rename to applications/test/FixedList/Test-FixedList.cxx index e77190a7939..5f8a1034417 100644 --- a/applications/test/FixedList/Test-FixedList.C +++ b/applications/test/FixedList/Test-FixedList.cxx @@ -41,7 +41,6 @@ See also #include "List.H" #include "IPstream.H" #include "OPstream.H" -#include <numeric> using namespace Foam; diff --git a/applications/test/List/Test-List.cxx b/applications/test/List/Test-List.cxx index 96571f642cb..0962997830c 100644 --- a/applications/test/List/Test-List.cxx +++ b/applications/test/List/Test-List.cxx @@ -54,7 +54,6 @@ See also #include "ListPolicy.H" #include <list> -#include <numeric> #include <functional> // see issue #2083 diff --git a/applications/test/ListRead1/Make/files b/applications/test/ListRead1/Make/files index da3cc22d196..8631d227f0e 100644 --- a/applications/test/ListRead1/Make/files +++ b/applications/test/ListRead1/Make/files @@ -1,3 +1,3 @@ -Test-ListRead1.C +Test-ListRead1.cxx EXE = $(FOAM_USER_APPBIN)/Test-ListRead1 diff --git a/applications/test/ListRead1/Test-ListRead1.C b/applications/test/ListRead1/Test-ListRead1.C index d7417235b4e..aac211e2da6 100644 --- a/applications/test/ListRead1/Test-ListRead1.C +++ b/applications/test/ListRead1/Test-ListRead1.C @@ -50,7 +50,6 @@ Description #include "ListPolicy.H" #include <list> -#include <numeric> #include <functional> using namespace Foam; diff --git a/applications/test/SubField/Make/files b/applications/test/SubField/Make/files index 406ae415312..9e8f8ac4bbc 100644 --- a/applications/test/SubField/Make/files +++ b/applications/test/SubField/Make/files @@ -1,3 +1,3 @@ -Test-SubField.C +Test-SubField.cxx EXE = $(FOAM_USER_APPBIN)/Test-SubField diff --git a/applications/test/SubField/Test-SubField.C b/applications/test/SubField/Test-SubField.cxx similarity index 99% rename from applications/test/SubField/Test-SubField.C rename to applications/test/SubField/Test-SubField.cxx index bed02ecacb5..17a41f14f38 100644 --- a/applications/test/SubField/Test-SubField.C +++ b/applications/test/SubField/Test-SubField.cxx @@ -38,7 +38,6 @@ Description #include "SubField.H" #include "labelRange.H" #include "ListOps.H" -#include <numeric> using namespace Foam; diff --git a/applications/test/charList/Make/files b/applications/test/charList/Make/files index e7b5eba75bf..f3f0e233d57 100644 --- a/applications/test/charList/Make/files +++ b/applications/test/charList/Make/files @@ -1,3 +1,3 @@ -Test-charList.C +Test-charList.cxx EXE = $(FOAM_USER_APPBIN)/Test-charList diff --git a/applications/test/charList/Test-charList.C b/applications/test/charList/Test-charList.cxx similarity index 99% rename from applications/test/charList/Test-charList.C rename to applications/test/charList/Test-charList.cxx index 32e98110930..8a480a287b5 100644 --- a/applications/test/charList/Test-charList.C +++ b/applications/test/charList/Test-charList.cxx @@ -43,8 +43,6 @@ Description #include "SubList.H" #include "FlatOutput.H" -#include <numeric> - using namespace Foam; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/test/checkIOspeed/Test-checkIOspeed.cxx b/applications/test/checkIOspeed/Test-checkIOspeed.cxx index a92159dde3b..5db748b01c6 100644 --- a/applications/test/checkIOspeed/Test-checkIOspeed.cxx +++ b/applications/test/checkIOspeed/Test-checkIOspeed.cxx @@ -50,8 +50,6 @@ Description #include "SliceStreamRepo.H" #endif -#include <numeric> - using namespace Foam; diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C index 8f0ea89dc24..b009297bde0 100644 --- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C +++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C @@ -73,7 +73,6 @@ Description #include "perfectInterface.H" #include "IOobjectList.H" #include "ReadFields.H" -#include <numeric> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/containers/Lists/List/SubList.H b/src/OpenFOAM/containers/Lists/List/SubList.H index 2cd0e10c18e..ba7d320c670 100644 --- a/src/OpenFOAM/containers/Lists/List/SubList.H +++ b/src/OpenFOAM/containers/Lists/List/SubList.H @@ -172,7 +172,11 @@ public: // Member Operators //- Allow cast to a const List\<T\>& - inline operator const Foam::List<T>&() const; + FOAM_DEPRECATED_STRICTER(2025-04, "dereference as SubList, not List?") + operator const Foam::List<T>&() const + { + return *reinterpret_cast<const List<T>*>(this); + } //- Copy assign entries (deep copy) from given sub-list. //- Sizes must match! diff --git a/src/OpenFOAM/containers/Lists/List/SubListI.H b/src/OpenFOAM/containers/Lists/List/SubListI.H index 1bec82958eb..567fa32f251 100644 --- a/src/OpenFOAM/containers/Lists/List/SubListI.H +++ b/src/OpenFOAM/containers/Lists/List/SubListI.H @@ -214,13 +214,6 @@ inline Foam::UList<T>& Foam::SubList<T>::reset // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // -template<class T> -inline Foam::SubList<T>::operator const Foam::List<T>&() const -{ - return *reinterpret_cast<const List<T>*>(this); -} - - template<class T> inline void Foam::SubList<T>::operator=(const SubList<T>& list) { diff --git a/src/OpenFOAM/containers/Lists/List/UList.H b/src/OpenFOAM/containers/Lists/List/UList.H index 2af60648ff3..0c54fe8a597 100644 --- a/src/OpenFOAM/containers/Lists/List/UList.H +++ b/src/OpenFOAM/containers/Lists/List/UList.H @@ -427,7 +427,7 @@ public: //- Allow cast to a const List<T>&. // \note Marked as "strictly" deprecated. // Currently (2025-04) code still depends on this cast. - FOAM_DEPRECATED_STRICTER(2025-04, "dereference as UList, not List") + FOAM_DEPRECATED_STRICTER(2025-04, "dereference as UList, not List?") operator const Foam::List<T>&() const { return *reinterpret_cast<const List<T>*>(this); diff --git a/src/OpenFOAM/expressions/value/exprValue.H b/src/OpenFOAM/expressions/value/exprValue.H index 97e057614dd..c65fcb93f16 100644 --- a/src/OpenFOAM/expressions/value/exprValue.H +++ b/src/OpenFOAM/expressions/value/exprValue.H @@ -308,7 +308,7 @@ public: void operator=(const exprValue& rhs) { deepCopy(rhs); } //- Assign from zero. Changes value but not type - void operator=(const Foam::zero) { fill_zero(); } + void operator=(Foam::zero) { fill_zero(); } // Low-level access diff --git a/src/OpenFOAM/expressions/value/exprValueFieldTag.H b/src/OpenFOAM/expressions/value/exprValueFieldTag.H index 07f8666e496..b1c3295c4a9 100644 --- a/src/OpenFOAM/expressions/value/exprValueFieldTag.H +++ b/src/OpenFOAM/expressions/value/exprValueFieldTag.H @@ -214,7 +214,7 @@ public: // Member Operators //- Assign from zero. Changes value but not type - void operator=(const Foam::zero) { value_ = Foam::zero{}; } + void operator=(Foam::zero) { value_ = Foam::zero{}; } //- Compare (uniformity,value) for equality bool operator==(const exprValueFieldTag&) const; diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C index 362c5a355e6..6328e7c0625 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C @@ -331,7 +331,7 @@ void clamp ( DimensionedField<Type, GeoMesh>& result, const DimensionedField<Type, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ) { const MinMax<Type> range(Foam::zero_one{}); @@ -345,7 +345,7 @@ tmp<DimensionedField<Type, GeoMesh>> clamp ( const DimensionedField<Type, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ) { auto tres = @@ -367,7 +367,7 @@ tmp<DimensionedField<Type, GeoMesh>> clamp ( const tmp<DimensionedField<Type, GeoMesh>>& tf1, - const Foam::zero_one + Foam::zero_one ) { const auto& f1 = tf1(); diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.H index 32ce17fcf04..b6ad90506ca 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.H @@ -149,7 +149,7 @@ void clamp ( DimensionedField<Type, GeoMesh>& result, const DimensionedField<Type, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ); template<class Type, class GeoMesh> @@ -157,7 +157,7 @@ tmp<DimensionedField<Type, GeoMesh>> clamp ( const DimensionedField<Type, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ); template<class Type, class GeoMesh> @@ -165,7 +165,7 @@ tmp<DimensionedField<Type, GeoMesh>> clamp ( const tmp<DimensionedField<Type, GeoMesh>>& tf1, - const Foam::zero_one + Foam::zero_one ); BINARY_TYPE_FUNCTION_FS(Type, Type, MinMax<Type>, clamp) diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C index 1cd6a54c6b2..7b21f1d7ea5 100644 --- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C +++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.C @@ -458,7 +458,7 @@ void FieldField<Field, Type>::operator=(const Type& val) template<template<class> class Field, class Type> -void FieldField<Field, Type>::operator=(const Foam::zero) +void FieldField<Field, Type>::operator=(Foam::zero) { forAll(*this, i) { diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H index f1c9fda937f..6924b0b32bc 100644 --- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H +++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldField.H @@ -197,7 +197,7 @@ public: void operator=(const Type& val); //- Assign uniform zero - void operator=(const Foam::zero); + void operator=(Foam::zero); void operator+=(const FieldField<Field, Type>&); void operator+=(const tmp<FieldField<Field, Type>>&); diff --git a/src/OpenFOAM/fields/Fields/Field/Field.H b/src/OpenFOAM/fields/Fields/Field/Field.H index 3441a50e0b5..c49292a0663 100644 --- a/src/OpenFOAM/fields/Fields/Field/Field.H +++ b/src/OpenFOAM/fields/Fields/Field/Field.H @@ -145,16 +145,16 @@ public: inline Field(const label len, const Type& val); //- Construct given size and initial values of zero - inline Field(const label len, const Foam::zero); + inline Field(const label len, Foam::zero); //- Construct with length=1, copying the value as the only content - inline Field(const Foam::one, const Type& val); + inline Field(Foam::one, const Type& val); //- Construct with length=1, moving the value as the only content - inline Field(const Foam::one, Type&& val); + inline Field(Foam::one, Type&& val); //- Construct with length=1, initializing content to zero - inline Field(const Foam::one, const Foam::zero); + inline Field(Foam::one, Foam::zero); //- Copy construct inline Field(const Field<Type>& fld); @@ -276,7 +276,7 @@ public: //- and assign its contents to this. The behaviour largely as //- described in assign(): // - For MUST_READ and key not found: FatalIOError. - // - For LAZY_READ and key not found: initialise field with Zero. + // - For LAZY_READ and key not found: initialise field with zero. // - For NO_READ and key not found: simply size the field. // . Field @@ -508,7 +508,7 @@ public: inline void operator=(const Type& val); //- Assign entries to zero - inline void operator=(const Foam::zero); + inline void operator=(Foam::zero); template<class Form, class Cmpt, direction nCmpt> void operator=(const VectorSpace<Form,Cmpt,nCmpt>&); diff --git a/src/OpenFOAM/fields/Fields/Field/FieldI.H b/src/OpenFOAM/fields/Fields/Field/FieldI.H index 4c34df88b14..6d1bf437dd2 100644 --- a/src/OpenFOAM/fields/Fields/Field/FieldI.H +++ b/src/OpenFOAM/fields/Fields/Field/FieldI.H @@ -29,8 +29,6 @@ License template<class Type> inline constexpr Foam::Field<Type>::Field() noexcept -: - List<Type>() {} @@ -49,28 +47,28 @@ inline Foam::Field<Type>::Field(const label len, const Type& val) template<class Type> -inline Foam::Field<Type>::Field(const label len, const Foam::zero) +inline Foam::Field<Type>::Field(const label len, Foam::zero) : List<Type>(len, Foam::zero{}) {} template<class Type> -inline Foam::Field<Type>::Field(const Foam::one, const Type& val) +inline Foam::Field<Type>::Field(Foam::one, const Type& val) : List<Type>(Foam::one{}, val) {} template<class Type> -inline Foam::Field<Type>::Field(const Foam::one, Type&& val) +inline Foam::Field<Type>::Field(Foam::one, Type&& val) : List<Type>(Foam::one{}, std::move(val)) {} template<class Type> -inline Foam::Field<Type>::Field(const Foam::one, const Foam::zero) +inline Foam::Field<Type>::Field(Foam::one, Foam::zero) : List<Type>(Foam::one{}, Foam::zero{}) {} @@ -209,7 +207,7 @@ inline void Foam::Field<Type>::operator=(const Type& val) template<class Type> -inline void Foam::Field<Type>::operator=(const Foam::zero) +inline void Foam::Field<Type>::operator=(Foam::zero) { List<Type>::operator=(Foam::zero{}); } diff --git a/src/OpenFOAM/fields/Fields/Field/SubField.H b/src/OpenFOAM/fields/Fields/Field/SubField.H index 15e09522a71..be237c924ec 100644 --- a/src/OpenFOAM/fields/Fields/Field/SubField.H +++ b/src/OpenFOAM/fields/Fields/Field/SubField.H @@ -136,7 +136,13 @@ public: // Member Operators //- Allow cast to a const Field\<Type\>& - inline operator const Foam::Field<Type>&() const; + // \note Marked as "strictly" deprecated. + // Currently (2025-04) code still depends on this cast. + FOAM_DEPRECATED_STRICTER(2025-04, "dereference as SubField, not Field?") + operator const Foam::Field<Type>&() const + { + return *reinterpret_cast<const Field<Type>*>(this); + } //- Copy assign via UList operator. Takes linear time. inline void operator=(const SubField<Type>&); @@ -148,7 +154,7 @@ public: inline void operator=(const Type& val); //- Assign all entries to zero - inline void operator=(const Foam::zero); + inline void operator=(Foam::zero); //- Copy assign via UList operator. Takes linear time. template<class Form, direction Ncmpts> diff --git a/src/OpenFOAM/fields/Fields/Field/SubFieldI.H b/src/OpenFOAM/fields/Fields/Field/SubFieldI.H index 235f981da7e..0aff687982e 100644 --- a/src/OpenFOAM/fields/Fields/Field/SubFieldI.H +++ b/src/OpenFOAM/fields/Fields/Field/SubFieldI.H @@ -125,13 +125,6 @@ inline Foam::tmp<Foam::Field<Type>> Foam::SubField<Type>::T() const // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // -template<class Type> -inline Foam::SubField<Type>::operator const Foam::Field<Type>&() const -{ - return *reinterpret_cast<const Field<Type>*>(this); -} - - template<class Type> inline void Foam::SubField<Type>::operator=(const SubField<Type>& rhs) { @@ -154,7 +147,7 @@ inline void Foam::SubField<Type>::operator=(const Type& val) template<class Type> -inline void Foam::SubField<Type>::operator=(const Foam::zero) +inline void Foam::SubField<Type>::operator=(Foam::zero) { SubList<Type>::operator=(Foam::zero{}); } diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C index 506942bb915..3336a347217 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.C @@ -524,7 +524,7 @@ void clamp ( GeometricField<Type, PatchField, GeoMesh>& result, const GeometricField<Type, PatchField, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ) { const MinMax<Type> range(Foam::zero_one{}); @@ -544,7 +544,7 @@ tmp<GeometricField<Type, PatchField, GeoMesh>> clamp ( const GeometricField<Type, PatchField, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ) { auto tres = @@ -566,7 +566,7 @@ tmp<GeometricField<Type, PatchField, GeoMesh>> clamp ( const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, - const Foam::zero_one + Foam::zero_one ) { const auto& f1 = tf1(); diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H index 5aab42aae0e..92fe6c87aad 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricFieldFunctions.H @@ -287,7 +287,7 @@ void clamp ( GeometricField<Type, PatchField, GeoMesh>& result, const GeometricField<Type, PatchField, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ); template<class Type, template<class> class PatchField, class GeoMesh> @@ -295,7 +295,7 @@ tmp<GeometricField<Type, PatchField, GeoMesh>> clamp ( const GeometricField<Type, PatchField, GeoMesh>& f1, - const Foam::zero_one + Foam::zero_one ); template<class Type, template<class> class PatchField, class GeoMesh> @@ -303,7 +303,7 @@ tmp<GeometricField<Type, PatchField, GeoMesh>> clamp ( const tmp<GeometricField<Type, PatchField, GeoMesh>>& tf1, - const Foam::zero_one + Foam::zero_one ); BINARY_TYPE_FUNCTION_FS(Type, Type, MinMax<Type>, clamp) diff --git a/src/OpenFOAM/include/stdFoam.H b/src/OpenFOAM/include/stdFoam.H index 24cf6c14b30..5878f8e7907 100644 --- a/src/OpenFOAM/include/stdFoam.H +++ b/src/OpenFOAM/include/stdFoam.H @@ -24,7 +24,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Description - Includes some standard C++ headers, defines global macros and templates + Includes some common C++ headers, defines global macros and templates used in multiple places by OpenFOAM. \*---------------------------------------------------------------------------*/ @@ -36,6 +36,7 @@ Description #include <initializer_list> #include <iterator> // for std::begin, std::end, ... #include <memory> +#include <numeric> // for std::iota, std::reduce, ... #include <type_traits> #include <utility> diff --git a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H index 60e985a25e1..017a6adf673 100644 --- a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H +++ b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H @@ -43,7 +43,6 @@ SourceFiles #define Foam_DiagonalMatrix_H #include "List.H" -#include <numeric> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H index 0ef3cd52a11..96f6e53f112 100644 --- a/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H +++ b/src/OpenFOAM/matrices/SquareMatrix/SquareMatrix.H @@ -45,7 +45,6 @@ SourceFiles #include "Matrix.H" #include "Identity.H" -#include <numeric> // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C index 5e472755d67..fafaabee130 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGSolverSolve.C @@ -239,7 +239,7 @@ void Foam::GAMGSolver::Vcycle coarseCorrFields[leveli], const_cast<solveScalarField&> ( - ACf.operator const solveScalarField&() + static_cast<const solveScalarField&>(ACf) ), matrixLevels_[leveli], interfaceLevelsBouCoeffs_[leveli], @@ -346,11 +346,10 @@ void Foam::GAMGSolver::Vcycle scratch1, coarseCorrFields[leveli].size() ); - solveScalarField& ACfRef = - const_cast<solveScalarField&> - ( - ACf.operator const solveScalarField&() - ); + auto& ACfRef = const_cast<solveScalarField&> + ( + static_cast<const solveScalarField&>(ACf) + ); if (interpolateCorrection_) { diff --git a/src/OpenFOAM/meshes/boundBox/boundBox.H b/src/OpenFOAM/meshes/boundBox/boundBox.H index 554c93285cf..109a53ff792 100644 --- a/src/OpenFOAM/meshes/boundBox/boundBox.H +++ b/src/OpenFOAM/meshes/boundBox/boundBox.H @@ -164,7 +164,7 @@ public: inline explicit boundBox(const point& p); //- Construct a 0/1 unit bounding box - inline explicit boundBox(const Foam::zero_one); + inline explicit boundBox(Foam::zero_one); //- Construct from bound box min/max points inline boundBox(const point& min, const point& max); @@ -295,7 +295,7 @@ public: inline void reset(); //- Reset to a 0/1 unit bounding box - inline void reset(const Foam::zero_one); + inline void reset(Foam::zero_one); //- Reset min/max to be identical to the specified point inline void reset(const point& pt); diff --git a/src/OpenFOAM/meshes/boundBox/boundBoxI.H b/src/OpenFOAM/meshes/boundBox/boundBoxI.H index 4b900ae1c53..147944fe860 100644 --- a/src/OpenFOAM/meshes/boundBox/boundBoxI.H +++ b/src/OpenFOAM/meshes/boundBox/boundBoxI.H @@ -112,7 +112,7 @@ inline Foam::boundBox::boundBox() {} -inline Foam::boundBox::boundBox(const Foam::zero_one) +inline Foam::boundBox::boundBox(Foam::zero_one) : min_(point::zero), max_(point::one) @@ -306,7 +306,7 @@ inline void Foam::boundBox::reset() } -inline void Foam::boundBox::reset(const Foam::zero_one) +inline void Foam::boundBox::reset(Foam::zero_one) { min_ = point::zero; max_ = point::one; diff --git a/src/OpenFOAM/meshes/ijkMesh/IjkField.H b/src/OpenFOAM/meshes/ijkMesh/IjkField.H index f7e0b284495..8ce84d24823 100644 --- a/src/OpenFOAM/meshes/ijkMesh/IjkField.H +++ b/src/OpenFOAM/meshes/ijkMesh/IjkField.H @@ -81,7 +81,7 @@ public: inline IjkField(const labelVector& ijk, const Type& val); //- Construct with sizing information and initial values of zero - inline IjkField(const labelVector& ijk, const Foam::zero); + inline IjkField(const labelVector& ijk, Foam::zero); //- Copy construct from components inline IjkField(const labelVector& ijk, const UList<Type>& list); @@ -118,7 +118,7 @@ public: //- Clear dimensions and field inline void clear(); - //- Change dimensions. Fill new values with Zero + //- Change dimensions. Fill new values with zero void resize(const labelVector& newSizes); //- Change dimensions diff --git a/src/OpenFOAM/meshes/ijkMesh/IjkFieldI.H b/src/OpenFOAM/meshes/ijkMesh/IjkFieldI.H index 45c9afade78..97c44b22b0a 100644 --- a/src/OpenFOAM/meshes/ijkMesh/IjkFieldI.H +++ b/src/OpenFOAM/meshes/ijkMesh/IjkFieldI.H @@ -75,7 +75,7 @@ template<class Type> inline Foam::IjkField<Type>::IjkField ( const labelVector& ijk, - const Foam::zero + Foam::zero ) : Field<Type>(cmptProduct(ijk), Foam::zero{}), @@ -101,7 +101,7 @@ inline Foam::IjkField<Type>::IjkField << nl << nl; #endif - Field<Type>::resize(ijk_.size(), Zero); + Field<Type>::resize(ijk_.size(), Foam::zero{}); } } @@ -124,7 +124,7 @@ inline Foam::IjkField<Type>::IjkField << nl << nl; #endif - Field<Type>::resize(ijk_.size(), Zero); + Field<Type>::resize(ijk_.size(), Foam::zero{}); } } diff --git a/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C b/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C index a0a55385e45..f1b20cb1a35 100644 --- a/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C +++ b/src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C @@ -1134,8 +1134,12 @@ void Foam::syncTools::syncBoundaryFaceList pp.size(), pp.start()-boundaryOffset ); - const List<T>& fakeList = recvFld; - top(procPatch, const_cast<List<T>&>(fakeList)); + + auto& fakeList = const_cast<List<T>&> + ( + static_cast<const List<T>&>(recvFld) + ); + top(procPatch, fakeList); SubList<T> patchValues ( diff --git a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H index a30a872250a..26d24f1f497 100644 --- a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H +++ b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H @@ -202,7 +202,7 @@ public: // Constructors //- Construct a 0/1 unit bounding box - inline explicit treeBoundBox(const Foam::zero_one); + inline explicit treeBoundBox(Foam::zero_one); //- Construct a bounding box containing a single initial point inline explicit treeBoundBox(const point& p); diff --git a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H index 08bff3acfa2..5315c457024 100644 --- a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H +++ b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H @@ -31,9 +31,9 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -inline Foam::treeBoundBox::treeBoundBox(const Foam::zero_one) +inline Foam::treeBoundBox::treeBoundBox(Foam::zero_one) : - boundBox(zero_one{}) + boundBox(Foam::zero_one{}) {} diff --git a/src/OpenFOAM/primitives/Scalar/scalarImpl.H b/src/OpenFOAM/primitives/Scalar/scalarImpl.H index 0d1564dde56..cde30b8c7fd 100644 --- a/src/OpenFOAM/primitives/Scalar/scalarImpl.H +++ b/src/OpenFOAM/primitives/Scalar/scalarImpl.H @@ -292,7 +292,7 @@ inline bool notEqual(const Scalar a, const Scalar b) //- Clamp scalar value to a 0-1 range -inline Scalar clamp(const Scalar val, const Foam::zero_one) +inline Scalar clamp(const Scalar val, Foam::zero_one) { return (val < 0) ? 0 : (1 < val) ? 1 : val; } diff --git a/src/OpenFOAM/primitives/ranges/MinMax/MinMaxOps.H b/src/OpenFOAM/primitives/ranges/MinMax/MinMaxOps.H index 71e3632bfc6..26464e0d16c 100644 --- a/src/OpenFOAM/primitives/ranges/MinMax/MinMaxOps.H +++ b/src/OpenFOAM/primitives/ranges/MinMax/MinMaxOps.H @@ -84,7 +84,7 @@ struct clampOp {} //- Construct as 0-1 min/max range - clampOp(const Foam::zero_one) + clampOp(Foam::zero_one) : clampOp(MinMax<T>(Foam::zero_one{})) {} diff --git a/src/conversion/vtk/adaptor/foamVtkToolsI.H b/src/conversion/vtk/adaptor/foamVtkToolsI.H index aa2da4eeb21..435845f3b76 100644 --- a/src/conversion/vtk/adaptor/foamVtkToolsI.H +++ b/src/conversion/vtk/adaptor/foamVtkToolsI.H @@ -25,8 +25,6 @@ License \*---------------------------------------------------------------------------*/ -#include <numeric> - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // inline Foam::UList<uint8_t> Foam::vtk::Tools::asUList diff --git a/src/fileFormats/ensight/part/faces/ensightFaces.C b/src/fileFormats/ensight/part/faces/ensightFaces.C index 4b41a67fd20..393182e2851 100644 --- a/src/fileFormats/ensight/part/faces/ensightFaces.C +++ b/src/fileFormats/ensight/part/faces/ensightFaces.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2016-2022 OpenCFD Ltd. + Copyright (C) 2016-2025 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -193,22 +193,22 @@ void Foam::ensightFaces::sort() if (!sub.empty()) { SubList<label> ids(sub, addressing()); - labelList order(Foam::sortedOrder(ids)); + const labelList order(Foam::sortedOrder(ids)); - ids = reorder<labelList>(order, ids); + ids = UIndirectList<label>(ids, order).list(); // Sort flip map as well if (!flipMap_.empty()) { SubList<bool> flips(flipMap_, sub); - flips = reorder<boolList>(order, flips); + flips = UIndirectList<bool>(flips, order).list(); } // Sort face ordering as well if (!faceOrder_.empty()) { SubList<label> faceOrder(faceOrder_, sub); - faceOrder = reorder<labelList>(order, faceOrder); + faceOrder = UIndirectList<label>(faceOrder, order).list(); } } } -- GitLab