¿Por qué el bad_alloc (const char *) se hizo privado en Visual C ++ 2012?

Solo estoy tratando de compilar un proyecto un poco más grande con el Visual Studio 2012 Release Candidate, C ++. El proyecto se compiló usando el VS2010 ahora. (Soy codicioso para obtener las cosas de C ++ 11, así que lo intenté. :)

Aparte de las cosas que puedo explicar por mí mismo, el proyecto utiliza el código así:

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

El compilador ahora se queja

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

... cual es verdad. Esa versión de constructor ahora es privada.

¿Cuál fue la razón para hacer que esa versión de constructor sea privada? ¿Está recomendado por el estándar C ++ 11 para no usar ese constructor con el argumento?

(Puedo imaginar que si falla la asignación, puede causar más problemas intentar construir algo nuevo. Sin embargo, es solo mi suposición).

Gracias petr

Respuestas a la pregunta(2)

Su respuesta a la pregunta