C++11 conformance and consistency: Added "move" constructors and assignment operators to OpenFOAM containers
Replaced all uses of complex Xfer class with C++11 "move" constructors and assignment operators. Removed the now redundant Xfer class. This substantial changes improves consistency between OpenFOAM and the C++11 STL containers and algorithms, reduces memory allocation and copy overhead when returning containers from functions and simplifies maintenance of the core libraries significantly.
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2014-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2014-2019 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -76,6 +76,10 @@ inline const T& NullObjectRef();
|
||||
template<class T>
|
||||
inline const T* NullObjectPtr();
|
||||
|
||||
//- Return reference to the nullObject of type T
|
||||
template<class T>
|
||||
inline T&& NullObjectMove();
|
||||
|
||||
|
||||
//- Return true if t is a reference to the nullObject of type T
|
||||
template<class T>
|
||||
|
||||
Reference in New Issue
Block a user