<ios>
The Boost Iostreams library contains several macros useful for writing code which works with compilers which fail to support certain core language features and with defective standard library implementations, such as those which do not provide template streams.
<ios>
<boost/iostreams/detail/ios.hpp>
#define BOOST_IOSTREAMS_BASIC_IOS(ch, tr) ... #define BOOST_IOS ... #define BOOST_IOSTREAMS_FAILURE ...
BOOST_IOSTREAMS_BASIC_IOS
Expands to std::basic_ios<ch, tr>
for standard libraries which support templated streams, and to std::ios
otherwise.
BOOST_IOS
Expands to std::ios_base
if available, and to std::ios
otherwise. To access the nested class std::ios_base::failure
, use BOOST_IOSTREAMS_FAILURE
.
BOOST_IOSTREAMS_FAILURE
Expands to std::ios_base::failure
if available, and to a suitable derived class of std::exception
otherwise.
<boost/iostreams/detail/iostream.hpp>
#define BOOST_IOSTREAMS_BASIC_ISTREAM(ch, tr) ...
#define BOOST_IOSTREAMS_BASIC_OSTREAM(ch, tr) ...
#define BOOST_IOSTREAMS_BASIC_IOSTREAM(ch, tr) ...
BOOST_IOSTREAMS_BASIC_ISTREAM
Expands to std::basic_istream<ch, tr>
for standard libraries which support templated streams, and to std::istream
otherwise.
BOOST_IOSTREAMS_BASIC_OSTREAM
Expands to std::basic_ostream<ch, tr>
for standard libraries which support templated streams, and to std::ostream
otherwise.
BOOST_IOSTREAMS_BASIC_IOSTREAM
Expands to std::basic_iostream<ch, tr>
for standard libraries which support templated streams, and to std::iostream
otherwise.
<boost/iostreams/detail/streambuf.hpp>
#define BOOST_IOSTREAMS_BASIC_STREAMBUF(ch, tr) ...
#define BOOST_IOSTREAMS_PUBSEEKOFF ...
#define BOOST_IOSTREAMS_PUBSEEKPOS ...
#define BOOST_IOSTREAMS_PUBSYNC ...
BOOST_IOSTREAMS_BASIC_STREAMBUF
Expands to std::basic_streambuf<ch, tr>
for standard libraries which support std::basic_streambuf
, and to std::streambuf
otherwise.
BOOST_IOSTREAMS_PUBSEEKOFF
Expands to pubseekoff
for standard libraries which support std::basic_streambuf::pubseekoff
, and to seekoff
otherwise.
BOOST_IOSTREAMS_PUBSEEKPOS
Expands to pubseekpos
for standard libraries which support std::basic_streambuf::pubseekpos
, and to seekpos
otherwise.
BOOST_IOSTREAMS_PUBSYNC
Expands to pubsync
for standard libraries which support std::basic_streambuf::pubsync
, and to sync
otherwise.
<boost/iostreams/detail/char_traits.hpp>
#define BOOST_IOSTREAMS_CHAR_TRAITS(ch) ...
BOOST_IOSTREAMS_CHAR_TRAITS
Expands to std::char_traits<ch>
for standard libraries which support std::char_traits
, and to a substitute for std::char_traits<char>
otherwise.
<boost/iostreams/chain.hpp>
#define BOOST_IOSTREAMS_COMPONENT_TYPE(chain, n) ... #define BOOST_IOSTREAMS_COMPONENT(chain, n, t) ...
BOOST_IOSTREAMS_COMPONENT_TYPE
Used in place of chain.component_type(n)
for compilers which don't support explicit specification of member function template arguments. chain
can be an instance of filtering_stream
, filtering_streambuf
or basic_chain
.
This macro is deprecated. Use chain.component_type(n)
instead.
BOOST_IOSTREAMS_COMPONENT
Used in place of chain.component<t>(n)
for compilers which don't support explicit specification of member function template arguments. chain
can be an instance of filtering_stream
, filtering_streambuf
or basic_chain
.
Revised 02 Feb 2008
© Copyright 2008 CodeRage, LLC
© Copyright 2004-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)