Если тип параметра нетривиален для целей вызовов, вызывающая сторона должна выделить место для временного объекта и передать это временное значение по ссылке.
https://itanium-cxx-abi.github.io/cxx-abi/abi.html#value-parameter
И * нетривиально для целей звонков определяется как:
- у него есть нетривиальный конструктор копирования, конструктор перемещения или деструктор
- все его конструкторы копирования и перемещения удаляются.
https://itanium-cxx-abi.github.io/cxx-abi/abi.html#non-trivial
Есть ли явная причина для этого?
Задача ещё не решена.
Других решений пока нет …