J'ai une macro que j'utilise beaucoup, inspiré par une autre question:
some_function(to_string("The int is " << my_int));
3 Réponses :
in c ++ 11 et plus, nous avons maintenant std :: to_string code>
. Nous pouvons utiliser cela pour convertir les données en une chaîne l'annexez à tout ce que vous voulez.
some_function("The int is " + std::to_string(my_int));
Merci! Mais dois-je l'écrire comme ci-dessus? C'est un peu plus désordonné que la macro originale, et je devrais réécrire un peu de code.
@Jorgen Oui. Ce n'est pas un remplaçant direct. Ils sont de la manière dont vous l'avez avec la macro est la seule façon dont j'ai vu cela, sans réécrire le code comme ci-dessus.
ironiquement, to_string code>
est ce que Vous voulez ici. P>
au lieu de: Vous pouvez écrire: Cela retournera une chaîne [ exemple en direct ] p> to_string ("l'int est" << my_int) code> p>
"l'int est" + to_string (my_int) code> p>
code>. p>
Votre macro a plus de possibilités que Live: < Un href = "http://coliru.stacked-crooked.com/a/14515cabae729875"> http://coliru.stacked-crooked.com/a/14515cabae729875 p> p> std :: to_string code> offres. Il accepte toute séquence raisonnable des opérateurs
<<< / code>, définit une base de précision et décimale par défaut. Un moyen compatible consiste à créer un
std :: ostringstream code> implicitement convertible à
std :: chaîne code>: