ストリーミングはstringstream
libstdc++ 拡張機能ですか? このプログラムはgcc-4.2
、gcc-4.7-2 (using -std=c++03)
、および clang 3.2 で and を使用して-std=c++11
コンパイルされますlibstdc++
(Andy Prowl のおかげです。コメントを参照してください)。andをclang 3.2
使用してコンパイルしません。-std=c++11
-stdlib=libc++
#include<iostream>
#include<sstream>
int main() {
std::stringstream s; s << "b";
std::cout << "ss: " << s << std::endl;
return 0;
}
ofstream のコンストラクターを見ると、std::basic_streambuf<CharT, Traits>*
またはを取ることができますbasic_ostream& st
。文字列ストリームは ですがstd::basic_istream
、どちらもstd::basic_ios<CharT, Traits>
そうなので、うまくいくはずです。
次の変更により、コードは clang でコンパイルされます。
std::cout << "ss: " << s.str() << std::endl;
それを行う正しい方法は何ですか?cout << s;
またはcout << s.str();
?