mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-12-28 03:37:59 +00:00
UList: Rationalize assignment (shallow-copy vs deep-copy)
//- Disallow default shallow-copy assignment
//
// Assignment of UList<T> may need to be either shallow (copy pointer)
// or deep (copy elements) depending on context or the particular type
// of list derived from UList and it is confusing and prone to error
// for the default assignment to be either. The solution is to
// disallow default assignment and provide separate 'shallowCopy' and
// 'deepCopy' member functions.
void operator=(const UList<T>&) = delete;
//- Copy the pointer held by the given UList.
inline void shallowCopy(const UList<T>&);
//- Copy elements of the given UList.
void deepCopy(const UList<T>&);
This commit is contained in:
@ -56,8 +56,8 @@ int main(int argc, char *argv[])
|
||||
rowSizes[1] = row1.size();
|
||||
cll1.resize(rowSizes);
|
||||
|
||||
cll1[0].assign(row0); //note: operator= will not work since UList
|
||||
cll1[1].assign(row1);
|
||||
cll1[0].deepCopy(row0);
|
||||
cll1[1].deepCopy(row1);
|
||||
Info<< "cll1:" << cll1 << endl;
|
||||
|
||||
forAll(cll1.m(), i)
|
||||
|
||||
Reference in New Issue
Block a user