std::lexical_cast - est-il une telle chose?
Ne la Norme C++ de la Bibliothèque de définir cette fonction, ou dois-je avoir recours à des Boost?
J'ai cherché sur le web et ne pouvait pas trouver quelque chose, sauf coup de pouce, mais j'ai pensé que je ferais mieux de demander ici.
- Vous pouvez le "recours" à stringstreams trop 🙂
Vous devez vous connecter pour publier un commentaire.
Que partiellement.
C++11
<string>
astd::to_string
pour les types intégrés:Il y a aussi les suivants qui vont dans l'autre sens:
Cependant, il n'y a rien de générique que vous pouvez utiliser (au moins pas jusqu'à ce que TR2, peut-être!), et rien du tout en C++03.
stoi
et les amis 🙂Non, ce n'est pas le cas, même en C++11, mais c'est proposée pour inscription dans le Rapport Technique 2, le prochain jeu de std bibliothèque d'extensions.
Il n'y a pas de std::lexical_cast, mais vous pouvez toujours faire quelque chose de similaire avec stringstreams:
boost::lexical_cast
dégénère à cette version quand les types sont inconnus. Aussi, vous ne devez pas seulement affaire avec les bits d'erreur, mais aussi de vérifier que le tampon a été vidé.lexical_cast<string>(string)
cela ne sera de retour que le premier mot, pas ce que vous transmettez. (Vous pouvez l'utiliser dans une basée sur des modèles de fonction ou de quelque chose, du moins pas directement.) Quelque chose à regarder dehors pour.iss
statiqueNon, c'est une pure Boost chose seulement.
Si vous ne voulez pas boost puis un léger bibliothèque appelée fmt met en œuvre les suivantes:
Plus d'exemples de la page officielle.
Accès à des arguments par la poste:
En alignant le texte et en spécifiant une largeur:
Remplacement d' %+f, %-f et % f et en spécifiant un signe:
Remplacement d' %x et %o et la conversion de la valeur de bases différentes:
fmt
bibliothèque et aime voir son utilisation promu.fmt
, cependant, ne fera que le string de conversion. (Maintenant, il le fait mieux que tout les autres de la bibliothèque C++ que j'ai vu.)fmt
ne pas faire de de la chaîne conversion effectuée par lexical_cast ou std::stoxyz fonctions.