byt*_*uff 8 c++ memory-management smart-pointers
如果我理解正确的话,当一个shared_ptr(来自boost,tr1,std,等等)用一个指向新分配对象的指针初始化时,shared_ptr的构造函数会分配少量内存来保存它管理的指针的引用计数.如果分配失败会怎么样?在以下代码中:
class my_class {};
void my_func(shared_ptr<my_class> arg);
int main(int argc, char* argv[])
{
my_func(shared_ptr<my_class>(new my_class()));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
... my_class如果shared_ptr无法为其引用计数分配内存,那么对象是否会泄露?或者shared_ptr的构造函数是否负责删除对象?