1 // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
2 // (C) Copyright 2003-2007 Jonathan Turkanis
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
6 // See http://www.boost.org/libs/iostreams for documentation.
8 #ifndef BOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
9 #define BOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
11 #include <boost/config.hpp> // BOOST_STATIC_CONSANT.
12 #include <boost/mpl/bool.hpp>
13 #include <boost/type_traits/is_same.hpp>
15 namespace boost
{ namespace iostreams
{ namespace detail
{
17 template<typename Device
, typename U
>
19 BOOST_STATIC_CONSTANT(bool, value
=
20 ( !is_same
< U
, Device
>::value
&&
21 !is_same
< U
, reference_wrapper
<Device
> >::value
));
24 template<typename Device
, typename U
>
26 : mpl::bool_
<forward_impl
<Device
, U
>::value
>
29 } } } // End namespaces detail, iostreams, boost.
31 #endif // #ifndef BOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED