2010-02-03 2 views
4

я могу сделатьстанд :: ostringstream беды

std::ostringstream oss; 
oss << 1; 
oss.str(); 

так почему я не могу сделать:

((std::ostringstream()) << 1).str() ? 

Спасибо!

+0

Что говорит об ошибке? –

+0

И что именно вы пытаетесь достичь? –

+3

См. Также: http://stackoverflow.com/questions/1540831/stringstream-temporary-ostream-return-problem для интересных вопросов с использованием временных строк. –

ответ

11

Оператор << возвращает базовый тип ostream, тогда как функция-член str существует только на производном типе ostringstream.

+1

(oss << 1) .str() не работает одинаково. ostream не поддерживает str() – pm100

+0

, можете ли вы вернуть его обратно в ostringstream? – Inverse

+0

Да, отбрасывание обратно будет работать. – interjay

Смежные вопросы