Что произойдет, если произойдет сбой конструктора общего _ptr?

Если я правильно понимаю, когда общий _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 берет на себя ответственность за удаление объекта?

8
задан bythescruff 12 August 2012 в 12:41
поделиться