Я заметил что-то при попытке использовать объект stringstream. Вот бесполезный пример, чтобы объяснить это:
stringstream ss ;
ss << "my string" ;
cout << ss.str() << endl ;
Не эквивалентен
cout << (stringstream() << "my string").str() << endl ;
Это приводит к ошибке компиляции, в которой говорится, что "class std:: basic_ostream не имеет имени с именем str.
Я не могу это легко объяснить. Это не критично для моего приложения, но я уверен, что это скрывает трюк С++, который нужно понять.
Примечание: я использую gcc с С++ 14