考慮一個簡單的計數濾波器: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