我的问题是这个说法:
如果任何std :: weak_ptr在所有共享所有者的生命周期结束后引用由std :: make_shared创建的控制块,则T占用的内存将持续存在,直到所有弱所有者都被销毁,如果sizeof(T)是大.资源
我在这里读到,这个对象一直存在,直到最后一个weak_ptr存在.它是使用make_shared自由对象,循环引用self还是永远存在于内存中?
例如:
struct A
{
std::weak_ptr<A> parent;
}
void fn()
{
auto a=std::make_shared<A>();
a->parent = a;
} // Will it destroy here or not?
Run Code Online (Sandbox Code Playgroud)