2011-11-09 9 views
5

¿Es posible que boost::lexical_cast<std::string>(Int_Type) tiro? La única vez que puedo pensar en dónde no habrá ningún miembro para la cadena, ¿pero puede haber otras opciones más razonables?Puede aumentar :: lexical_cast <std::string> (Int_Type) ever throw?

+0

¿Cuál es su definición de 'boost '? –

+1

-1 No existe tal cosa como 'boost '. –

+2

@KerrekSB end Ernest lo siento, quise decir boost :: lexical_cast (Int_Type) – smallB

Respuesta

3

De acuerdo con documentation, lexical_cast puede arrojar bad_lexical_cast. Además de eso, como ya lo mencionó, puede haber una asignación dinámica, que siempre puede causar una excepción de bad_alloc.

Editar: En cuanto a la situación particular lexical_cast<std::string, int>, parece poco probable que alguna parte a lo largo de la cadena podría fallar que no sea por error de asignación, pero la documentación no (que yo sepa) garantizar que no habrá una excepción de "mal lanzamiento".

+0

¿Cómo se puede lanzar bad_lexical_cast al convertir int a una cadena? – CharlesB

+0

Durante la asignación de la memoria para std :: string? – luke

+1

@CharlesB: Tal vez no pueda, tienes razón. Tal vez si el objeto de flujo subyacente falla por alguna razón ... aunque la única forma en que puedo ver * que * está sucediendo es nuevamente por fallo de asignación, que simplemente surgiría como una excepción 'bad_alloc' ... –

Cuestiones relacionadas