質問があります。と遊んでいてenable_shared_from_this
、奇妙なことに気づきました。この例は正常に動作します:
#include <iostream>
#include <memory>
using namespace std;
struct Test : enable_shared_from_this<Test>
{
};
int main() {
shared_ptr<Test> ptr(new Test);
return 0;
}
しかし、変更struct
するclass
とコンパイルが停止します。
エラーは言う:
/usr/include/c++/4.8/bits/shared_ptr_base.h:772:58: エラー: 'std::enable_shared_from_this' は 'Test' のアクセスできないベースです __enable_shared_from_this_helper(_M_refcount, __p, __p);
なぜそうなのか、誰にも手がかりがありますか?