The default copy and move constructors and assignment operators are fine, there's no need to implement them manually.
Spotted on Debian Testing with GCC 9.2.1:
In file included from /otb/Modules/Core/VectorDataBase/include/otbPolyLineParametricPathWithValue.h:34,
from /otb/Modules/Core/VectorDataBase/include/otbPolygon.h:24,
from /otb/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h:33,
from /otb/Modules/Core/LabelMap/test/otbLabelObjectMapVectorizer.cxx:24:
/otb/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h:118:8: note: because 'otb::RemoteSensingRegion<double>' has user-provided 'void otb::RemoteSensingRegion<TType>::operator=(const Self&) [with TType = double; otb::RemoteSensingRegion<TType>::Self = otb::RemoteSensingRegion<double>]'
118 | void operator=(const Self& region)
| ^~~~~~~~
The copyright owner is Laurențiu Nicola (CS ROMANIA) and has signed the ORFEO ToolBox Contributor License Agreement.
Check before merging:
git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i
on latest changes and commit