Konstruktor und Initialisierungsliste verschieben

Ich möchte Move-Konstruktoren (keine Kopierkonstruktoren) für einen bestimmten Typ implementieren, der ein Werttyp in a sein mussboost::unordered_map. Nennen wir diesen TypComposite.

Composite hat folgende Unterschrift:

struct Base
{
  Base(..stuff, no default ctor) : initialization list {}
  Base(Base&& other) : initialization list {} 
}

struct Composite
{
  Base member;
  Composite(..stuff, no default ctor) : member(...) {}
  Composite(Composite&& other) : member(other.member) {} // <---- I want to make sure this invokes the move ctor of Base
}

Ich möchte das so schreibenboost::unordered_map< Key , Composite > benötigt keinen Kopierkonstruktor und verwendet nur den Verschiebungskonstruktor. Wenn möglich, möchte ich nicht den Kopierkonstruktor von verwendenBase in der Initialisierungsliste des Verschiebungskonstruktors vonComposite.

Ist das möglich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage