【发布时间】:2013-02-15 02:14:28
【问题描述】:
考虑一个简单的计数过滤器:
class CountableOstreamFilter : public boost::iostreams::multichar_output_filter {
public:
CountableOstreamFilter(): m_written(0) {
}
template<typename Sink>
std::streamsize write(Sink& dest, const char* s, std::streamsize n)
{
auto result = boost::iostreams::write(dest, s, n);
assert(n == result);
m_written += result;
return result;
}
inline std::streamsize writtenBytes() const {
return m_written;
}
private:
std::streamsize m_written;
};
并因此使用它:
boost::iostreams::filtering_ostream counted_cout;
counted_cout.push(CountableOstreamFilter());
counted_cout.push(std::cout);
counted_cout << "hello world";
调用sync()、strict_sync()或flush()有什么区别? counted_cout.sync(); // 和这个调用有什么不同 counted_cout.strict_sync(); // 到这个调用 counted_cout.flush(); // 这个电话?
我正在使用 boost 1.50.0
【问题讨论】:
标签: c++ boost iostream boost-iostreams