diff --git a/include/boost/iostreams/detail/adapter/concept_adapter.hpp b/include/boost/iostreams/detail/adapter/concept_adapter.hpp index bd2c1d5..766e258 100755 --- a/include/boost/iostreams/detail/adapter/concept_adapter.hpp +++ b/include/boost/iostreams/detail/adapter/concept_adapter.hpp @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/iostreams/detail/enable_if_stream.hpp b/include/boost/iostreams/detail/enable_if_stream.hpp index 81299ba..62e2cc6 100755 --- a/include/boost/iostreams/detail/enable_if_stream.hpp +++ b/include/boost/iostreams/detail/enable_if_stream.hpp @@ -11,9 +11,9 @@ # pragma once #endif -#include // BOOST_NO_SFINAE +#include // BOOST_NO_SFINAE #include -#include // is_std_io. +#include // is_std_io. #ifndef BOOST_NO_SFINAE # define BOOST_IOSTREAMS_ENABLE_IF_STREAM(T) \ diff --git a/include/boost/iostreams/detail/param_type.hpp b/include/boost/iostreams/detail/param_type.hpp index 1e3c4d1..b04a99c 100755 --- a/include/boost/iostreams/detail/param_type.hpp +++ b/include/boost/iostreams/detail/param_type.hpp @@ -11,7 +11,7 @@ # pragma once #endif -#include +#include #include namespace boost { namespace iostreams { namespace detail { diff --git a/include/boost/iostreams/detail/resolve.hpp b/include/boost/iostreams/detail/resolve.hpp index 6038abb..929bf9b 100755 --- a/include/boost/iostreams/detail/resolve.hpp +++ b/include/boost/iostreams/detail/resolve.hpp @@ -20,7 +20,6 @@ #include #include #include -#include // is_std_io. #include #include #include diff --git a/include/boost/iostreams/detail/wrap_unwrap.hpp b/include/boost/iostreams/detail/wrap_unwrap.hpp index cd1590c..8ec477c 100755 --- a/include/boost/iostreams/detail/wrap_unwrap.hpp +++ b/include/boost/iostreams/detail/wrap_unwrap.hpp @@ -13,7 +13,7 @@ #include // SFINAE. #include -#include // is_std_io. +#include // is_std_io. #include #include #include diff --git a/include/boost/iostreams/device/array.hpp b/include/boost/iostreams/device/array.hpp index 7b9f362..5f6cd23 100755 --- a/include/boost/iostreams/device/array.hpp +++ b/include/boost/iostreams/device/array.hpp @@ -16,7 +16,6 @@ #include // std::size_t. #include // pair. #include -#include #include #include #include @@ -94,7 +93,7 @@ BOOST_IOSTREAMS_ARRAY(array, seekable) #undef BOOST_IOSTREAMS_ARRAY -//------------------Implementation of array_adapter------------------------------// +//------------------Implementation of array_adapter---------------------------// namespace detail { diff --git a/include/boost/iostreams/operations.hpp b/include/boost/iostreams/operations.hpp index da7cd61..346cc21 100755 --- a/include/boost/iostreams/operations.hpp +++ b/include/boost/iostreams/operations.hpp @@ -15,7 +15,6 @@ #include // NO_STD_LOCALE, DEDUCED_TYPENAME, MSVC. #include #include -#include #include #include #include diff --git a/include/boost/iostreams/traits.hpp b/include/boost/iostreams/traits.hpp index 923e257..f6d3960 100755 --- a/include/boost/iostreams/traits.hpp +++ b/include/boost/iostreams/traits.hpp @@ -18,25 +18,41 @@ # pragma once #endif -#include // streamsize. -#include // char_traits. -#include // partial spec, deduced typename. +#include // stream types, char_traits. +#include // partial spec, deduced typename. #include -#include -#include -#include +#include +#include +#include #include #include #include #include +#include #include #include #include #define BOOST_SELECT_BY_SIZE_MAX_CASE 9 -#include +#include + +//------------------Definitions of predicates for stream types----------------// + +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_istream, std::basic_istream, 2) +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostream, std::basic_ostream, 2) +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iostream, std::basic_iostream, 2) +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_streambuf, std::basic_streambuf, 2) +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringstream, std::basic_stringstream, 3) +BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringbuf, std::basic_stringbuf, 3) namespace boost { namespace iostreams { +//------------------Definitions of is_std_io----------------------------------// + +template +struct is_std_io + : mpl::or_< is_istream, is_ostream, is_streambuf > + { }; + //------------------Definitions of io_char------------------------------------// namespace detail {