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?