diff --git a/include/boost/iterator/is_iterator.hpp b/include/boost/iterator/is_iterator.hpp index 37cf197..0c3718a 100644 --- a/include/boost/iterator/is_iterator.hpp +++ b/include/boost/iterator/is_iterator.hpp @@ -17,6 +17,7 @@ #include #include #include +#include #if !defined(BOOST_NO_CXX17_ITERATOR_TRAITS) #include #endif @@ -57,56 +58,56 @@ no_type check(...); template< typename T > struct is_iterator_impl : - public boost::integral_constant< + public std::integral_constant< bool, - sizeof(has_iterator_category_detail::check< T >(0)) == sizeof(has_iterator_category_detail::yes_type) + sizeof(has_iterator_category_detail::check(0)) == sizeof(has_iterator_category_detail::yes_type) > { }; template< typename T > struct is_iterator_impl< T* > : - std::integral_constant< - bool - , boost::is_complete::value && !std::is_function::value - > + public boost::conjunction< + boost::is_complete, + std::integral_constant::value> + >::type { }; template< typename T, typename U > struct is_iterator_impl< T U::* > : - public boost::false_type + public std::false_type { }; template< typename T > -struct is_iterator_impl< T& > : - public boost::false_type +struct is_iterator_impl : + public std::false_type { }; template< typename T, std::size_t N > struct is_iterator_impl< T[N] > : - public boost::false_type + public std::false_type { }; #if !defined(BOOST_TT_HAS_WORKING_IS_COMPLETE) template< typename T > struct is_iterator_impl< T[] > : - public boost::false_type + public std::false_type { }; template< > struct is_iterator_impl< void > : - public boost::false_type + public std::false_type { }; template< > struct is_iterator_impl< void* > : - public boost::false_type + public std::false_type { }; #endif // !defined(BOOST_TT_HAS_WORKING_IS_COMPLETE) diff --git a/include/boost/iterator/iterator_facade.hpp b/include/boost/iterator/iterator_facade.hpp index 5351e7e..326e698 100644 --- a/include/boost/iterator/iterator_facade.hpp +++ b/include/boost/iterator/iterator_facade.hpp @@ -8,10 +8,11 @@ #define BOOST_ITERATOR_FACADE_23022003THW_HPP #include +#include + #include #include #include - #include #include @@ -169,7 +170,7 @@ namespace iterators { // Provides (r++)->foo() value_type* operator->() const { - return std::addressof(stored_value); + return boost::addressof(stored_value); } private: @@ -269,7 +270,7 @@ namespace iterators { // Provides (r++)->foo() value_type* operator->() const { - return std::addressof(dereference_proxy.stored_value); + return boost::addressof(dereference_proxy.stored_value); } private: @@ -371,10 +372,10 @@ namespace iterators { struct proxy { explicit proxy(Reference const & x) : m_ref(x) {} - Reference* operator->() { return std::addressof(m_ref); } + Reference* operator->() { return boost::addressof(m_ref); } // This function is needed for MWCW and BCC, which won't call // operator-> again automatically per 13.3.1.2 para 8 - operator Reference*() { return std::addressof(m_ref); } + operator Reference*() { return boost::addressof(m_ref); } Reference m_ref; }; typedef proxy result_type; @@ -390,7 +391,7 @@ namespace iterators { typedef Pointer result_type; static result_type apply(T& x) { - return std::addressof(x); + return boost::addressof(x); } };