Index: boost/iostreams/detail/adapter/mode_adapter.hpp =================================================================== --- boost/iostreams/detail/adapter/mode_adapter.hpp (revision 34600) +++ boost/iostreams/detail/adapter/mode_adapter.hpp (revision 34601) @@ -23,6 +23,7 @@ #include #include #include +#include namespace boost { namespace iostreams { namespace detail { @@ -38,6 +39,15 @@ device_tag, mpl::if_, filter_tag, device_tag>, mpl::if_, multichar_tag, empty_base>, + mpl::if_< + mpl::or_< + is_convertible::type, ostream_tag>, + is_convertible::type, streambuf_tag>, + is_convertible::type, flushable_tag> + >, + flushable_tag, + empty_base + >::type, #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) closable_tag, // VC6 can't see member close()! #endif @@ -67,6 +77,13 @@ std::streamsize write(Sink& snk, const char_type* s, std::streamsize n) { return iostreams::write(t_, snk, s, n); } + bool flush() + { return iostreams::flush(t_); } + + template + bool flush(Sink& snk) + { return iostreams::flush(t_, snk); } + template std::streampos seek(Device& dev, stream_offset off, BOOST_IOS::seekdir way) { return iostreams::seek(t_, dev, off, way); }