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