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