のバッファリングを無効にするはずのこのプログラムがありstd::cout
ます。書いたものを出力デバイスに出力したいのですが、出力してstr
も何も出力されません。
#include <iostream>
#include <sstream>
#include <string>
int main()
{
std::cout.rdbuf()->pubsetbuf(0, 0);
std::cout.unsetf(std::ios::unitbuf);
std::cout << "Hello, World\n";
std::stringstream ss;
ss << std::cout.rdbuf();
std::string str{ss.str()};
std::cout << str; // nothing
// str.size() == 0
}