如何使用boost :: iostreams管道进入std :: cout

Ell*_*ron 2 c++ boost iostream boost-iostreams

我是新手,boost::iostreams所以这可能是微不足道的:

假设 namespace io = boost::iostreams;

这很有效

io::filtering_ostream out(std::cout);
out << "some\nstring\n";
Run Code Online (Sandbox Code Playgroud)

这很有效

std::string result;
io::filtering_ostream out(io::counter() | io::back_inserter(result));
out << "some\nstring\n";
Run Code Online (Sandbox Code Playgroud)

但这不编译

io::filtering_ostream out(io::counter() | std::cout);
out << "some\nstring\n";
Run Code Online (Sandbox Code Playgroud)

你怎么管std::cout

ale*_*sko 5

std::coutboost :: ref包装为我工作:

io::filtering_ostream out(DummyOutputFilter() | boost::ref(std::cout));
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅pipable 文档中的note_1.