Nach meinen Beobachtungen war hierfür ein zusätzlicher Verschiebungskonstruktor erforderlich aufgerufen werden.
Hier ist ein Beispiel einer Klasse, die einen „Zeiger“ enthält. Es sind 3 Aufrufe von move-ctor erforderlich, um es als Wert zu übernehmen, im Vergleich zu 2 Aufrufen, um es als Referenz zu übernehmen:
Code: Select all
#include
#include
class pointer {
public:
pointer()
{ std::cerr