Если я правильно понимаю, когда общий _ptr (из boost, tr1, std, что угодно )инициализируется указателем на только что выделенный -объект, конструктор общего _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
утечкой, если общий _ptr не сможет выделить память для своего счетчика ссылок? Или конструктор разделяемого _ptr берет на себя ответственность за удаление объекта?