Почему bad_alloc (const char *) стал закрытым в Visual C ++ 2012?

Я просто пытаюсь скомпилировать немного больший проект с использованием кандидата на выпуск Visual Studio 2012, C ++. Проект был / скомпилирован с использованием VS2010 сейчас. (Я просто жадный, чтобы получить вещи C ++ 11, поэтому я попытался. :)

Помимо вещей, которые я могу объяснить сам, в проекте используется такой код:

ostringstream ostr;
ostr << "The " __FUNCTION__ "() failed to malloc(" << i << ").";
throw bad_alloc(ostr.str().c_str());

Компилятор сейчас жалуется

error C2248: 'std::bad_alloc::bad_alloc' : cannot access private member declared 
    in class 'std::bad_alloc'

... что является правдой. Эта версия конструктора теперь приватная.

По какой причине эта версия конструктора была закрытой? Стандарт C ++ 11 рекомендует не использовать этот конструктор с аргументом?

(Я могу себе представить, что если распределение не удалось, это может вызвать больше проблем, чтобы попытаться создать что-то новое. Однако это только мое предположение.)

Спасибо,     Petr

Ответы на вопрос(2)

Ваш ответ на вопрос