这是我的课程结构:
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
的对象有一些要求,但是我尝试了各种方法并搜索了错误消息,但无济于事。
你有什么主意吗?
答案 0 :(得分:0)
好吧,有点尴尬..
问题是我写了shared_ptr<B> b_
而不是std::shared_ptr<B> b_
。我的IDE(Android Studio)没有在编辑器中突出显示此错误,并且在生成输出中也没有通过该行的链接显示该错误,因此我只是跳过了该行,仅看到了以下错误,当然,这种未知类型没有这种功能。我想我已经习惯了IDE的便利了:)
如果有人错过了,就把它留在这里。