考虑一个简单的计数滤波器:in boost iostream filtering_ostream,sync(),strict_sync()和flush()之间有什么区别?
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()或冲洗()? counting_cout.sync(); //与此调用有什么不同 counts_cout.strict_sync(); //致电 counting_cout.flush(); //给这个电话?
我使用升压1.50.0