次に例を示します。
tempalate <class T> class MyClass : public T {
public:
MyClass(std::weak_ptr<MyClass> parent) {
//--------------------------------------+
// |
// V
auto child = std::make_shared<MyClass>(this);
}
};
どうやってするか?MyClassから派生する必要がある場合、すでに別の祖先から派生しているstd::enable_shared_from_this<MyClass<T>>ため、多重継承なしでそれを行うにはどうすればよいですか?コンストラクターを呼び出す必要がありますか?MyClassTshared_from_this()
私の場合、Tから継承されたクラスである可能性がありますenable_shared_from_this<T>が、常にではありません