diff --git a/include/boost/iterator/is_readable_iterator.hpp b/include/boost/iterator/is_readable_iterator.hpp index e8016e3..6613c31 100644 --- a/include/boost/iterator/is_readable_iterator.hpp +++ b/include/boost/iterator/is_readable_iterator.hpp @@ -2,9 +2,7 @@ // subject to 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) #ifndef IS_READABLE_ITERATOR_DWA2003112_HPP -# define IS_READABLE_ITERATOR_DWA2003112_HPP - -#include +#define IS_READABLE_ITERATOR_DWA2003112_HPP #include #include @@ -21,10 +19,11 @@ namespace detail struct is_readable_iterator_impl { template - struct rebind : std::is_convertible< - decltype(*std::declval()) - , typename std::add_lvalue_reference::type - > + struct rebind : + public std::is_convertible< + decltype(*std::declval()), + typename std::add_lvalue_reference::type + > {}; }; @@ -70,18 +69,17 @@ namespace detail // an instantiation by removing it for others. // template - struct is_readable_iterator_impl2 - : is_readable_iterator_impl< - BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type const + struct is_readable_iterator_impl2 : + public is_readable_iterator_impl< + typename std::iterator_traits::value_type const >::template rebind {}; } // namespace detail -template< typename T > struct is_readable_iterator -: public std::integral_constant::value> +template< typename T > +struct is_readable_iterator : + public std::integral_constant::value> { -public: - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_readable_iterator,(T)) }; } // namespace iterators