diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index 7a9e4761..fb1d4788 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -33,8 +32,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -244,9 +243,8 @@ namespace boost { // iterator SFINAE template - struct is_forward - : boost::is_convertible::type, - boost::forward_traversal_tag> + struct is_forward : boost::is_base_of::iterator_category> { }; diff --git a/test/helpers/input_iterator.hpp b/test/helpers/input_iterator.hpp index 18e6695d..b32dbb37 100644 --- a/test/helpers/input_iterator.hpp +++ b/test/helpers/input_iterator.hpp @@ -7,7 +7,6 @@ #define BOOST_UNORDERED_TEST_HELPERS_INPUT_ITERATOR_HEADER #include -#include #include namespace test { @@ -28,12 +27,12 @@ namespace test { template struct input_iterator_adaptor : public std::iterator::type, + BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type, std::ptrdiff_t, - BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type, + BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer, proxy > { - typedef BOOST_DEDUCED_TYPENAME boost::iterator_value::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type value_type; input_iterator_adaptor() : base_() {} @@ -68,17 +67,17 @@ namespace test { template struct copy_iterator_adaptor - : public std::iterator< - BOOST_DEDUCED_TYPENAME boost::iterator_category::type, - BOOST_DEDUCED_TYPENAME boost::iterator_value::type, - BOOST_DEDUCED_TYPENAME boost::iterator_difference::type, - BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type, + : public std::iterator::iterator_category, + BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type, + BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type, + BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer, proxy > { - typedef BOOST_DEDUCED_TYPENAME boost::iterator_value::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_difference::type - difference_type; + typedef BOOST_DEDUCED_TYPENAME + std::iterator_traits::difference_type difference_type; copy_iterator_adaptor() : base_() {} explicit copy_iterator_adaptor(Iterator const& it) : base_(it) {} diff --git a/test/unordered/compile_tests.hpp b/test/unordered/compile_tests.hpp index 0a6176ad..c3aa9a87 100644 --- a/test/unordered/compile_tests.hpp +++ b/test/unordered/compile_tests.hpp @@ -17,7 +17,6 @@ #endif #include "../helpers/check_return_type.hpp" -#include #include #include #include @@ -56,14 +55,14 @@ template void container_test(X& r, T const&) typedef BOOST_DEDUCED_TYPENAME X::difference_type difference_type; typedef BOOST_DEDUCED_TYPENAME X::size_type size_type; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_value::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type iterator_value_type; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_value::type - const_iterator_value_type; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_difference::type + typedef BOOST_DEDUCED_TYPENAME + std::iterator_traits::value_type const_iterator_value_type; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type iterator_difference_type; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_difference< - const_iterator>::type const_iterator_difference_type; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_iterator>::difference_type const_iterator_difference_type; typedef BOOST_DEDUCED_TYPENAME X::value_type value_type; typedef BOOST_DEDUCED_TYPENAME X::reference reference; @@ -263,14 +262,14 @@ template void unordered_set_test(X& r, Key const&) typedef BOOST_DEDUCED_TYPENAME X::const_iterator const_iterator; typedef BOOST_DEDUCED_TYPENAME X::local_iterator local_iterator; typedef BOOST_DEDUCED_TYPENAME X::const_local_iterator const_local_iterator; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer const_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer local_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer< - const_local_iterator>::type const_local_iterator_pointer; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::pointer const_local_iterator_pointer; BOOST_STATIC_ASSERT( (boost::is_same::value)); @@ -309,14 +308,14 @@ void unordered_map_test(X& r, Key const& k, T const& v) typedef BOOST_DEDUCED_TYPENAME X::const_iterator const_iterator; typedef BOOST_DEDUCED_TYPENAME X::local_iterator local_iterator; typedef BOOST_DEDUCED_TYPENAME X::const_local_iterator const_local_iterator; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer const_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer local_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer< - const_local_iterator>::type const_local_iterator_pointer; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::pointer const_local_iterator_pointer; BOOST_STATIC_ASSERT((boost::is_same::value)); BOOST_STATIC_ASSERT( @@ -482,41 +481,41 @@ void unordered_test(X& x, Key& k, Hash& hf, Pred& eq) typedef BOOST_DEDUCED_TYPENAME X::local_iterator local_iterator; typedef BOOST_DEDUCED_TYPENAME X::const_local_iterator const_local_iterator; - typedef BOOST_DEDUCED_TYPENAME boost::BOOST_ITERATOR_CATEGORY::type - iterator_category; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_difference::type + typedef BOOST_DEDUCED_TYPENAME + std::iterator_traits::iterator_category iterator_category; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type iterator_difference; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_reference::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::reference iterator_reference; - typedef BOOST_DEDUCED_TYPENAME boost::BOOST_ITERATOR_CATEGORY< - local_iterator>::type local_iterator_category; - typedef BOOST_DEDUCED_TYPENAME - boost::iterator_difference::type local_iterator_difference; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + local_iterator>::iterator_category local_iterator_category; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + local_iterator>::difference_type local_iterator_difference; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer local_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_reference::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::reference local_iterator_reference; - typedef BOOST_DEDUCED_TYPENAME boost::BOOST_ITERATOR_CATEGORY< - const_iterator>::type const_iterator_category; - typedef BOOST_DEDUCED_TYPENAME - boost::iterator_difference::type const_iterator_difference; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_iterator>::iterator_category const_iterator_category; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_iterator>::difference_type const_iterator_difference; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::pointer const_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_reference::type + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::reference const_iterator_reference; - typedef BOOST_DEDUCED_TYPENAME boost::BOOST_ITERATOR_CATEGORY< - const_local_iterator>::type const_local_iterator_category; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_difference< - const_local_iterator>::type const_local_iterator_difference; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_pointer< - const_local_iterator>::type const_local_iterator_pointer; - typedef BOOST_DEDUCED_TYPENAME boost::iterator_reference< - const_local_iterator>::type const_local_iterator_reference; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::iterator_category const_local_iterator_category; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::difference_type const_local_iterator_difference; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::pointer const_local_iterator_pointer; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits< + const_local_iterator>::reference const_local_iterator_reference; typedef BOOST_DEDUCED_TYPENAME X::allocator_type allocator_type; BOOST_STATIC_ASSERT((boost::is_same::value));