Лично я нахожу очень редким, что я хочу выполнять потоковую передачу в один и тот же строковый поток.
Обычно я хочу либо инициализировать поток из строки, а затем проанализировать его; или поток вещей в поток строк, а затем извлечь результат и сохранить его.
Если вы выполняете потоковую передачу в и из одного потока, вы должны быть очень осторожны с состоянием потока и позициями потока.
Использование «просто» istringstream
или ostringstream
лучше выражает ваше намерение и дает вам некоторую проверку против глупых ошибок, таких как случайное использование <<
против >>
.
Там может быть некоторое улучшение производительности, но я бы не стал смотреть на это в первую очередь.
Нет ничего плохого в том, что вы написали. Если вы обнаружите, что он работает недостаточно хорошо, вы могли бы описать другие подходы, в противном случае придерживайтесь того, что лучше всего. Лично я бы просто пошел на:
std::string stHehe( "Hello stackoverflow.com!" );