Ticket #4728: boost_iostreams-mode_adaptor-flushable.patch
File boost_iostreams-mode_adaptor-flushable.patch, 1.7 KB (added by , 12 years ago) |
---|
-
boost/iostreams/detail/adapter/mode_adapter.hpp
23 23 #include <boost/iostreams/traits.hpp> 24 24 #include <boost/iostreams/operations.hpp> 25 25 #include <boost/mpl/if.hpp> 26 #include <boost/type_traits/is_convertible.hpp> 26 27 27 28 namespace boost { namespace iostreams { namespace detail { 28 29 … … 38 39 device_tag, 39 40 mpl::if_<is_filter<T>, filter_tag, device_tag>, 40 41 mpl::if_<is_filter<T>, multichar_tag, empty_base>, 42 mpl::if_< 43 mpl::or_< 44 is_convertible<BOOST_DEDUCED_TYPENAME category_of<T>::type, ostream_tag>, 45 is_convertible<BOOST_DEDUCED_TYPENAME category_of<T>::type, streambuf_tag>, 46 is_convertible<BOOST_DEDUCED_TYPENAME category_of<T>::type, flushable_tag> 47 >, 48 flushable_tag, 49 empty_base 50 >::type, 41 51 #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) 42 52 closable_tag, // VC6 can't see member close()! 43 53 #endif … … 67 77 std::streamsize write(Sink& snk, const char_type* s, std::streamsize n) 68 78 { return iostreams::write(t_, snk, s, n); } 69 79 80 bool flush() 81 { return iostreams::flush(t_); } 82 83 template<typename Sink> 84 bool flush(Sink& snk) 85 { return iostreams::flush(t_, snk); } 86 70 87 template<typename Device> 71 88 std::streampos seek(Device& dev, stream_offset off, BOOST_IOS::seekdir way) 72 89 { return iostreams::seek(t_, dev, off, way); }