クラスのひし形の階層があり、デフォルト コンストラクターもコピー コンストラクターもありません。私が持っている2つのコンストラクターは、オブジェクトへの左辺値参照を取る「移動」のものと別のものです。
struct base {
base(base&&) = default;
base(member_type&& m): member_(std::move(m)) {}
member_type member_;
};
struct virt_1: virtual base {
virt_1(virt_1&& rhs): base(std::move(rhs)) {}
virt_1(member_type&& m): base(std::move(m)) {}
};
struct virt_2: virtual base {
virt_2(virt_2&& rhs): base(std::move(rhs)) {}
virt_2(member_type&& m): base(std::move(m)) {}
};
struct concrete: virt_1, virt_2 {
concrete(concrete&& rhs) // ???
};
ひし形の階層を使用しないことに加えて、具象クラスの移動コンストラクターを実装することは可能ですか?
ありがとう!