2010-02-03 52 views
4

我可以做的std :: ostringstream愁楚

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

所以爲什麼我不能做:

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

謝謝!

+0

錯誤說的是什麼? – 2010-02-03 22:56:08

+0

你究竟想要完成什麼? – 2010-02-03 22:58:00

+3

另請參見:http://stackoverflow.com/questions/1540831/stringstream-temporary-ostream-return-problem與使用臨時stringstreams有趣的問題。 – 2010-02-03 23:01:22

回答

11

<<運算符返回基類型ostream,而只存在所導出的類型ostringstreamstr成員函數。

+1

(oss << 1).str()以同樣的方式失敗。 ostream不支持str() – pm100 2010-02-03 23:03:42

+0

你可以將它重新轉換爲ostringstream嗎? – Inverse 2010-02-04 06:02:30

+0

是的,將它重新投放會有效。 – interjay 2010-02-04 14:47:59