Personnellement, je trouve très rare que je veuille effectuer du streaming dans et hors du même flux de chaînes.
Habituellement, je veux soit initialiser un flux à partir d'une chaîne, puis l'analyser; ou diffusez des éléments dans un flux de chaîne, puis extrayez le résultat et stockez-le.
Si vous diffusez depuis et vers le même flux, vous devez faire très attention à l'état du flux et aux positions des flux.
L' utilisation « juste » istringstream
ou ostringstream
exprime mieux votre intention et vous donne une vérification contre des erreurs stupides, comme l' utilisation accidentelle de <<
vs >>
.
Il pourrait y avoir une amélioration des performances, mais je ne regarderais pas cela en premier.
Il n'y a rien de mal dans ce que vous avez écrit. Si vous trouvez que cela ne fonctionne pas assez bien, vous pouvez profiler d'autres approches, sinon vous en tenir à ce qui est le plus clair. Personnellement, j'irais simplement pour:
std::string stHehe( "Hello stackoverflow.com!" );