私はshared_from_this関数でこれに共有ptrを作成しようとしています。shared_from_this派生クラス
#include <iostream>
#include <memory>
class foo {
public:
virtual void method() {
std::cerr << "foo::method()" << std::endl;
}
};
class foo_derived : public foo, public std::enable_shared_from_this<foo> {
public:
void method() override {
auto self(shared_from_this());
std::cerr << "foo_derived::method" << std::endl;
}
};
int main() {
foo_derived().method();
}
ラインauto self(shared_from_this());
からこのコード投げbad_weak_ptr私はこの問題は、自己が派生クラスで作成されているという事実であると思います。 私はこの動作の説明を探していますが、派生クラスで有効なshared_from_thisの使用例もありがとうと思います。