Cela donne une exception bad_lexical_cast:std :: string à int8_t
int8_t i = boost::lexical_cast<int8_t>("12");
Je voudrais avoir une exception lorsque la valeur ne correspond pas à un int8_t
.
Comment est-ce que je devrais faire ceci? Devrais-je lancer un int en premier et lancer une exception si la valeur tombe en dehors de la plage -128 à 127?
Je suis également intéressé par la conversion de chaînes en uint8_t.
Le 'bad_lexical_cast' est déjà une exception, pourquoi ne pas prendre et que si vous voulez, jeter votre propre exception? – Nim
Bien sûr, l'utilisation de 'int8_t' n'est pas portable. Il est "facultatif", c'est-à-dire que les implémentations ne sont pas requises pour le fournir. –