Pessoalmente, acho muito raro que eu queira executar streaming dentro e fora do mesmo fluxo de string.
Normalmente, eu quero inicializar um fluxo a partir de uma string e analisá-lo; ou transmitir coisas para um fluxo de string e extrair o resultado e armazená-lo.
Se você estiver transmitindo de e para o mesmo fluxo, você deve ter muito cuidado com o estado e as posições do fluxo.
Usando 'apenas' istringstream
ou ostringstream
expressa melhor a sua intenção e dá-lhe alguns testes contra erros bobos como o uso acidental de <<
vs >>
.
Não pode haver alguma melhora o desempenho, mas eu não iria estar a olhar para isso primeiro.
Não há nada errado com o que você escreveu. Se você achar que o desempenho não é bom o suficiente, poderá criar um perfil de outras abordagens, caso contrário, fique com o que for mais claro. Pessoalmente, eu gostaria de:
std::string stHehe( "Hello stackoverflow.com!" );