Когда я пытаюсь share_from_this()
в базовом классе shared_handler
вернуть общий указатель DerivedT
, я получаю исключение: std::bad_weak_ptr
Я пытался сохранить внутренний разделяемый указатель в базовом классе во время конструирования, прежде чем вызывать shared_from_this()
, но я получаю еще более неоднозначную ошибку.
template<class DerivedT>
struct shared_handler : std::enable_shared_from_this<DerivedT>
{
void some_method(arbitrary input) {
do_something(shared_from_this());
}
};
struct my_handler : shared_handler<my_handler>
{
my_handler()
{
some_method("hello");
}
};