如果我理解正确,当使用指向新分配对象的指针初始化 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;
}
...my_class
如果 shared_ptr 未能为其引用计数分配内存,该对象是否会泄漏?还是 shared_ptr 的构造函数负责删除对象?