尝试执行shared_from_this时,由共享指针引用的类中的类的共享指针给出了错误

时间:2018-07-29 09:23:18

标签: c++ boost

这是我的课程结构:

class B : public std::enable_shared_from_this<B> {
}

class A : public std::enable_shared_from_this<A> {
    shared_ptr<B> b_;
    void SomeFunction();
}

我在此行出现错误:

void A::SomeFunction() {
    auto a_copy = shared_from_this();
}

错误文本为:

error: no matching member function for call to 'shared_from_this'

当我从A类中删除shared_ptr<B> b_;行时,一切正常。 我猜想对要尝试enable_shared_from_this的对象有一些要求,但是我尝试了各种方法并搜索了错误消息,但无济于事。

你有什么主意吗?

1 个答案:

答案 0 :(得分:0)

好吧,有点尴尬.. 问题是我写了shared_ptr<B> b_而不是std::shared_ptr<B> b_。我的IDE(Android Studio)没有在编辑器中突出显示此错误,并且在生成输出中也没有通过该行的链接显示该错误,因此我只是跳过了该行,仅看到了以下错误,当然,这种未知类型没有这种功能。我想我已经习惯了IDE的便利了:)

如果有人错过了,就把它留在这里。