/usr/include/boost/iostreams
NameSizeModeActions
detail/-0755rm
device/-0755rm
filter/-0755rm
categories.hpp47370644editdlrm
chain.hpp217250644editdlrm
char_traits.hpp24330644editdlrm
checked_operations.hpp48990644editdlrm
close.hpp70120644editdlrm
code_converter.hpp144290644editdlrm
combine.hpp86860644editdlrm
compose.hpp181550644editdlrm
concepts.hpp39570644editdlrm
constants.hpp13630644editdlrm
copy.hpp94300644editdlrm
filtering_stream.hpp69700644editdlrm
filtering_streambuf.hpp30810644editdlrm
flush.hpp32050644editdlrm
get.hpp5450644editdlrm
imbue.hpp22210644editdlrm
input_sequence.hpp19910644editdlrm
invert.hpp55560644editdlrm
operations.hpp9400644editdlrm
operations_fwd.hpp10360644editdlrm
optimal_buffer_size.hpp24330644editdlrm
output_sequence.hpp20050644editdlrm
pipeline.hpp36460644editdlrm
positioning.hpp41020644editdlrm
put.hpp5460644editdlrm
putback.hpp5570644editdlrm
read.hpp73030644editdlrm
restrict.hpp9450644editdlrm
seek.hpp54570644editdlrm
skip.hpp38720644editdlrm
slice.hpp10180644editdlrm
stream.hpp61330644editdlrm
stream_buffer.hpp39040644editdlrm
tee.hpp74950644editdlrm
traits.hpp118460644editdlrm
traits_fwd.hpp20200644editdlrm
write.hpp48560644editdlrm
Edit: /usr/include/boost/iostreams/checked_operations.hpp (4899B)
// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com) // (C) Copyright 2005-2007 Jonathan Turkanis // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.) // See http://www.boost.org/libs/iostreams for documentation. // Contains implementations of get, read, put, write and seek which // check a device's mode at runtime instead of compile time. #ifndef BOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED #define BOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED #include #include #include #include #include #include #include #include #include #include #include // Must come last. #include // MSVC. namespace boost { namespace iostreams { namespace detail { template struct read_write_if_impl; template struct seek_if_impl; } // End namespace detail. template typename int_type_of::type get_if(T& t) { typedef typename detail::dispatch::type tag; return detail::read_write_if_impl::get(t); } template inline std::streamsize read_if(T& t, typename char_type_of::type* s, std::streamsize n) { typedef typename detail::dispatch::type tag; return detail::read_write_if_impl::read(t, s, n); } template bool put_if(T& t, typename char_type_of::type c) { typedef typename detail::dispatch::type tag; return detail::read_write_if_impl::put(t, c); } template inline std::streamsize write_if (T& t, const typename char_type_of::type* s, std::streamsize n) { typedef typename detail::dispatch::type tag; return detail::read_write_if_impl::write(t, s, n); } template inline std::streampos seek_if( T& t, stream_offset off, BOOST_IOS::seekdir way, BOOST_IOS::openmode which = BOOST_IOS::in | BOOST_IOS::out ) { using namespace detail; typedef typename dispatch::type tag; return seek_if_impl::seek(t, off, way, which); } namespace detail { //------------------Specializations of read_write_if_impl---------------------// template<> struct read_write_if_impl { template static typename int_type_of::type get(T& t) { return iostreams::get(t); } template static std::streamsize read(T& t, typename char_type_of::type* s, std::streamsize n) { return iostreams::read(t, s, n); } template static bool put(T&, typename char_type_of::type) { boost::throw_exception(cant_write()); BOOST_IOSTREAMS_UNREACHABLE_RETURN(false) } template static std::streamsize write(T&, const typename char_type_of::type*, std::streamsize) { boost::throw_exception(cant_write()); BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } }; template<> struct read_write_if_impl { template static typename int_type_of::type get(T&) { boost::throw_exception(cant_read()); BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } template static std::streamsize read(T&, typename char_type_of::type*, std::streamsize) { boost::throw_exception(cant_read()); BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } template static bool put(T& t, typename char_type_of::type c) { return iostreams::put(t, c); } template static std::streamsize write( T& t, const typename char_type_of::type* s, std::streamsize n ) { return iostreams::write(t, s, n); } }; //------------------Specializations of seek_if_impl---------------------------// template<> struct seek_if_impl { template static std::streampos seek( T& t, stream_offset off, BOOST_IOS::seekdir way, BOOST_IOS::openmode which ) { return iostreams::seek(t, off, way, which); } }; template<> struct seek_if_impl { template static std::streampos seek(T&, stream_offset, BOOST_IOS::seekdir, BOOST_IOS::openmode) { boost::throw_exception(cant_seek()); BOOST_IOSTREAMS_UNREACHABLE_RETURN(std::streampos()) } }; } // End namespace detail. } } // End namespaces iostreams, boost. #include // MSVC. #endif // #ifndef BOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED