ENH: treat self-assignment as no-op instead of a Fatal (#1473)

- this can help if using std algorithms that return a const reference
  such as std::min() does.
This commit is contained in:
Mark Olesen
2019-11-05 11:10:49 +01:00
committed by Andrew Heather
parent 883752cfb9
commit b0c88dff58
65 changed files with 391 additions and 210 deletions

View File

@ -232,6 +232,11 @@ void Foam::DictionaryBase<IDLListType, T>::transfer
DictionaryBase<IDLListType, T>& dict
)
{
if (this == &dict)
{
return; // Self-assignment is a no-op
}
IDLListType::transfer(dict);
hashedTs_.transfer(dict.hashedTs_);
}
@ -247,9 +252,7 @@ void Foam::DictionaryBase<IDLListType, T>::operator=
{
if (this == &dict)
{
FatalErrorInFunction
<< "attempted assignment to self"
<< abort(FatalError);
return; // Self-assignment is a no-op
}
IDLListType::operator=(dict);