2011-11-09 8 views
5

E 'possibile che lanci boost::lexical_cast<std::string>(Int_Type)? L'unica volta che riesco a pensare a dove non ci sarà nessun mem per stringa, ma possono esserci altre scelte più ragionevoli?Può aumentare :: lexical_cast <std::string> (Int_Type) mai lanciato?

+0

Qual è la vostra definizione di 'boost '? –

+1

-1 Non esiste una cosa come 'boost '. –

+2

@KerrekSB end Ernest scusate volevo dire boost :: lexical_cast (Int_Type) – smallB

risposta

3

Secondo lo documentation, lexical_cast può generare bad_lexical_cast. Inoltre, come già accennato, potrebbe esserci un'allocazione dinamica, che può sempre causare un'eccezione bad_alloc.

Edit: Per quanto riguarda la situazione particolare lexical_cast<std::string, int>, sembra improbabile che una qualsiasi parte lungo la catena poteva non diverso da un errore di allocazione, ma la documentazione non significa (a mia conoscenza) garantire che non ci saranno un'eccezione "brutto cast".

+0

Come si può lanciare bad_lexical_cast quando si converte int in string? – CharlesB

+0

Durante l'allocazione della memoria per std :: string? – luke

+1

@CharlesB: Forse non può, hai ragione. Forse se l'oggetto del flusso sottostante fallisce per qualche motivo ... sebbene l'unico modo in cui posso vedere * che * avvenga è di nuovo l'errore di allocazione, che sarebbe semplicemente un'eccezione come un'eccezione 'bad_alloc' ... –

Problemi correlati