From a3ffd4a7c9ff4a724447f15db4cba73b7b947d83 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Fri, 2 Sep 2011 08:28:19 +0000 Subject: [PATCH] Unordered: Remove BOOST_DEDUCED_TYPENAME [SVN r74192] --- .../unordered/detail/allocator_helpers.hpp | 32 ++--- include/boost/unordered/detail/buckets.hpp | 61 ++++---- include/boost/unordered/detail/equivalent.hpp | 39 +++-- .../boost/unordered/detail/extract_key.hpp | 13 +- include/boost/unordered/detail/node.hpp | 24 ++-- include/boost/unordered/detail/table.hpp | 96 ++++++------- include/boost/unordered/detail/unique.hpp | 36 ++--- include/boost/unordered/detail/util.hpp | 6 +- include/boost/unordered/unordered_map.hpp | 134 ++++++++---------- include/boost/unordered/unordered_set.hpp | 112 +++++++-------- 10 files changed, 263 insertions(+), 290 deletions(-) diff --git a/include/boost/unordered/detail/allocator_helpers.hpp b/include/boost/unordered/detail/allocator_helpers.hpp index c09a3381..d299f5d9 100644 --- a/include/boost/unordered/detail/allocator_helpers.hpp +++ b/include/boost/unordered/detail/allocator_helpers.hpp @@ -78,14 +78,12 @@ namespace boost { namespace unordered { namespace detail { template struct rebind_wrap { - typedef BOOST_DEDUCED_TYPENAME - Alloc::BOOST_NESTED_TEMPLATE rebind::other + typedef typename Alloc::BOOST_NESTED_TEMPLATE rebind::other type; }; # endif - template BOOST_DEDUCED_TYPENAME - boost::add_lvalue_reference::type make(); + template typename boost::add_lvalue_reference::type make(); struct choice9 { typedef char (&type)[9]; }; struct choice8 : choice9 { typedef char (&type)[8]; }; struct choice7 : choice8 { typedef char (&type)[7]; }; @@ -104,8 +102,7 @@ namespace boost { namespace unordered { namespace detail { struct default_type_ ## tname { \ \ template \ - static choice1::type test(choice1, \ - BOOST_DEDUCED_TYPENAME X::tname* = 0); \ + static choice1::type test(choice1, typename X::tname* = 0); \ \ template \ static choice2::type test(choice2, void* = 0); \ @@ -114,8 +111,7 @@ namespace boost { namespace unordered { namespace detail { \ enum { value = (1 == sizeof(test(choose()))) }; \ \ - typedef BOOST_DEDUCED_TYPENAME \ - boost::detail::if_true:: \ + typedef typename boost::detail::if_true:: \ BOOST_NESTED_TEMPLATE then \ ::type::tname type; \ } @@ -130,8 +126,7 @@ namespace boost { namespace unordered { namespace detail { struct default_type_ ## tname { \ \ template \ - static BOOST_DEDUCED_TYPENAME sfinae< \ - BOOST_DEDUCED_TYPENAME X::tname, choice1>::type \ + static typename sfinae::type \ test(choice1); \ \ template \ @@ -141,8 +136,7 @@ namespace boost { namespace unordered { namespace detail { \ enum { value = (1 == sizeof(test(choose()))) }; \ \ - typedef BOOST_DEDUCED_TYPENAME \ - boost::detail::if_true:: \ + typedef typename boost::detail::if_true:: \ BOOST_NESTED_TEMPLATE then \ ::type::tname type; \ } @@ -150,7 +144,7 @@ namespace boost { namespace unordered { namespace detail { #endif #define BOOST_UNORDERED_DEFAULT_TYPE(T,tname, arg) \ - BOOST_DEDUCED_TYPENAME default_type_ ## tname::type + typename default_type_ ## tname::type BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(pointer); BOOST_UNORDERED_DEFAULT_TYPE_TMPLT(const_pointer); @@ -228,7 +222,7 @@ namespace boost { namespace unordered { namespace detail { typedef BOOST_PP_CAT(choice, result) type; \ }; \ \ - template static BOOST_DEDUCED_TYPENAME \ + template static typename \ BOOST_PP_CAT(test, count)<&U::name>::type \ test(BOOST_PP_CAT(choice, count)) @@ -261,7 +255,7 @@ namespace boost { namespace unordered { namespace detail { #endif template - inline BOOST_DEDUCED_TYPENAME boost::enable_if< + inline typename boost::enable_if< has_select_on_container_copy_construction, Alloc >::type call_select_on_container_copy_construction(const Alloc& rhs) { @@ -269,7 +263,7 @@ namespace boost { namespace unordered { namespace detail { } template - inline BOOST_DEDUCED_TYPENAME boost::disable_if< + inline typename boost::disable_if< has_select_on_container_copy_construction, Alloc >::type call_select_on_container_copy_construction(const Alloc& rhs) { @@ -302,7 +296,7 @@ namespace boost { namespace unordered { namespace detail { // For now always use the allocator's const_pointer. //typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_pointer, - // BOOST_DEDUCED_TYPENAME pointer_traits:: + // typename pointer_traits:: // BOOST_NESTED_TEMPLATE rebind::other) // const_pointer; @@ -317,7 +311,7 @@ namespace boost { namespace unordered { namespace detail { // void_pointer; //typedef BOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_void_pointer, - // BOOST_DEDUCED_TYPENAME pointer_traits:: + // typename pointer_traits:: // BOOST_NESTED_TEMPLATE rebind::other) // const_void_pointer; @@ -409,7 +403,7 @@ namespace boost { namespace unordered { namespace detail { template struct allocator_array_constructor { - typedef BOOST_DEDUCED_TYPENAME allocator_traits::pointer + typedef typename allocator_traits::pointer pointer; Allocator& alloc_; diff --git a/include/boost/unordered/detail/buckets.hpp b/include/boost/unordered/detail/buckets.hpp index 47ee4659..fdb30b70 100644 --- a/include/boost/unordered/detail/buckets.hpp +++ b/include/boost/unordered/detail/buckets.hpp @@ -41,7 +41,7 @@ namespace boost { namespace unordered { namespace detail { public: // Types - typedef BOOST_DEDUCED_TYPENAME ::boost::detail::if_true:: + typedef typename ::boost::detail::if_true:: BOOST_NESTED_TEMPLATE then< ::boost::unordered::detail::ungrouped_node, ::boost::unordered::detail::grouped_node @@ -49,16 +49,15 @@ namespace boost { namespace unordered { namespace detail { typedef A value_allocator; typedef ::boost::unordered::detail::bucket bucket; - typedef BOOST_DEDUCED_TYPENAME allocator_traits::value_type value_type; + typedef typename allocator_traits::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME bucket::bucket_allocator - bucket_allocator; - typedef BOOST_DEDUCED_TYPENAME allocator_traits::pointer bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME bucket::node_ptr node_ptr; + typedef typename bucket::bucket_allocator bucket_allocator; + typedef typename allocator_traits::pointer bucket_ptr; + typedef typename bucket::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME rebind_wrap::type + typedef typename rebind_wrap::type node_allocator; - typedef BOOST_DEDUCED_TYPENAME allocator_traits::pointer real_node_ptr; + typedef typename allocator_traits::pointer real_node_ptr; // Members @@ -423,7 +422,7 @@ namespace boost { namespace unordered { namespace detail { functions& operator=(functions const&); typedef compressed_pair function_pair; - typedef BOOST_DEDUCED_TYPENAME ::boost::aligned_storage< + typedef typename ::boost::aligned_storage< sizeof(function_pair), ::boost::alignment_of::value>::type aligned_function; @@ -647,7 +646,7 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } template - inline BOOST_DEDUCED_TYPENAME normal_construct1::type + inline typename normal_construct1::type construct_impl(void* address, BOOST_FWD_REF(Arg1) arg1) { new(address) T( @@ -656,14 +655,14 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } template - inline BOOST_DEDUCED_TYPENAME pair_construct1::type + inline typename pair_construct1::type construct_impl(void* address, BOOST_FWD_REF(Arg1) arg1) { new((void*)(&static_cast(address)->first)) - BOOST_DEDUCED_TYPENAME T::first_type( + typename T::first_type( boost::forward(arg1)); new((void*)(&static_cast(address)->second)) - BOOST_DEDUCED_TYPENAME T::second_type(); + typename T::second_type(); } template @@ -676,7 +675,7 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } template - inline BOOST_DEDUCED_TYPENAME piecewise_construct3::type + inline typename piecewise_construct3::type construct_impl(void* address, BOOST_FWD_REF(Arg1), BOOST_FWD_REF(Arg2) arg2, BOOST_FWD_REF(Arg3) arg3) { @@ -685,21 +684,21 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } template - inline BOOST_DEDUCED_TYPENAME pair_construct3::type + inline typename pair_construct3::type construct_impl(void* address, BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2, BOOST_FWD_REF(Arg3) arg3) { new((void*)(&static_cast(address)->first)) - BOOST_DEDUCED_TYPENAME T::first_type( + typename T::first_type( boost::forward(arg1)); new((void*)(&static_cast(address)->second)) - BOOST_DEDUCED_TYPENAME T::second_type( + typename T::second_type( boost::forward(arg2), boost::forward(arg3)); } template - inline BOOST_DEDUCED_TYPENAME normal_construct3::type + inline typename normal_construct3::type construct_impl(void* address, BOOST_FWD_REF(Arg1) arg1, BOOST_FWD_REF(Arg2) arg2, BOOST_FWD_REF(Arg3) arg3) { @@ -712,7 +711,7 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) #if defined(BOOST_UNORDERED_STD_FORWARD_MOVE) template - inline BOOST_DEDUCED_TYPENAME normal_construct_n::type + inline typename normal_construct_n::type construct_impl(void* address, Arg1&& arg1, Arg2&& arg2, Arg3&& arg3, Arg4&& arg4, Args&&... args) { @@ -725,15 +724,15 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } template - inline BOOST_DEDUCED_TYPENAME pair_construct_n::type + inline typename pair_construct_n::type construct_impl(void* address, Arg1&& arg1, Arg2&& arg2, Arg3&& arg3, Arg4&& arg4, Args&&... args) { new((void*)(&static_cast(address)->first)) - BOOST_DEDUCED_TYPENAME T::first_type( + typename T::first_type( std::forward(arg1)); new((void*)(&static_cast(address)->second)) - BOOST_DEDUCED_TYPENAME T::second_type( + typename T::second_type( std::forward(arg2), std::forward(arg3), std::forward(arg4), @@ -747,7 +746,7 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) class T, \ BOOST_UNORDERED_TEMPLATE_ARGS(z, num_params) \ > \ - inline BOOST_DEDUCED_TYPENAME normal_construct_n::type \ + inline typename normal_construct_n::type \ construct_impl(void* address, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params)) \ { \ @@ -762,15 +761,15 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) template \ - inline BOOST_DEDUCED_TYPENAME pair_construct_n::type \ + inline typename pair_construct_n::type \ construct_impl(void* address, BOOST_FWD_REF(Key) key, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, num_params)) \ { \ new((void*)(&static_cast(address)->first)) \ - BOOST_DEDUCED_TYPENAME T::first_type( \ + typename T::first_type( \ boost::forward(key)); \ new((void*)(&static_cast(address)->second)) \ - BOOST_DEDUCED_TYPENAME T::second_type( \ + typename T::second_type( \ BOOST_UNORDERED_CALL_PARAMS(z, num_params)); \ } @@ -788,10 +787,10 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) class node_constructor { typedef ::boost::unordered::detail::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; - typedef BOOST_DEDUCED_TYPENAME buckets::real_node_ptr real_node_ptr; - typedef BOOST_DEDUCED_TYPENAME buckets::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME buckets::node_allocator node_allocator; + typedef typename buckets::node node; + typedef typename buckets::real_node_ptr real_node_ptr; + typedef typename buckets::value_type value_type; + typedef typename buckets::node_allocator node_allocator; buckets& buckets_; real_node_ptr node_; @@ -858,7 +857,7 @@ BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::tr1) } // no throw - BOOST_DEDUCED_TYPENAME buckets::node_ptr release() + typename buckets::node_ptr release() { real_node_ptr p = node_; node_ = real_node_ptr(); diff --git a/include/boost/unordered/detail/equivalent.hpp b/include/boost/unordered/detail/equivalent.hpp index d92d273d..0c32e956 100644 --- a/include/boost/unordered/detail/equivalent.hpp +++ b/include/boost/unordered/detail/equivalent.hpp @@ -15,19 +15,19 @@ namespace boost { namespace unordered { namespace detail { class equivalent_table : public T::table_base { public: - typedef BOOST_DEDUCED_TYPENAME T::hasher hasher; - typedef BOOST_DEDUCED_TYPENAME T::key_equal key_equal; - typedef BOOST_DEDUCED_TYPENAME T::value_allocator value_allocator; - typedef BOOST_DEDUCED_TYPENAME T::key_type key_type; - typedef BOOST_DEDUCED_TYPENAME T::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME T::table_base table_base; - typedef BOOST_DEDUCED_TYPENAME T::node_constructor node_constructor; - typedef BOOST_DEDUCED_TYPENAME T::node_allocator node_allocator; + typedef typename T::hasher hasher; + typedef typename T::key_equal key_equal; + typedef typename T::value_allocator value_allocator; + typedef typename T::key_type key_type; + typedef typename T::value_type value_type; + typedef typename T::table_base table_base; + typedef typename T::node_constructor node_constructor; + typedef typename T::node_allocator node_allocator; - typedef BOOST_DEDUCED_TYPENAME T::node node; - typedef BOOST_DEDUCED_TYPENAME T::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME T::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME T::extractor extractor; + typedef typename T::node node; + typedef typename T::node_ptr node_ptr; + typedef typename T::bucket_ptr bucket_ptr; + typedef typename T::extractor extractor; // Constructors @@ -298,19 +298,18 @@ namespace boost { namespace unordered { namespace detail { template void insert_range(I i, I j) { - BOOST_DEDUCED_TYPENAME ::boost::iterator_traversal::type - iterator_traversal_tag; - insert_for_range(i, j, iterator_traversal_tag); + insert_for_range(i, j, + BOOST_DEDUCED_TYPENAME ::boost::iterator_traversal::type()); } }; template struct multiset : public types< - BOOST_DEDUCED_TYPENAME allocator_traits::value_type, - BOOST_DEDUCED_TYPENAME allocator_traits::value_type, + typename allocator_traits::value_type, + typename allocator_traits::value_type, H, P, A, - set_extractor::value_type>, + set_extractor::value_type>, false> { typedef equivalent_table > impl; @@ -319,9 +318,9 @@ namespace boost { namespace unordered { namespace detail { template struct multimap : public types< - K, BOOST_DEDUCED_TYPENAME allocator_traits::value_type, + K, typename allocator_traits::value_type, H, P, A, - map_extractor::value_type>, + map_extractor::value_type>, false> { typedef equivalent_table > impl; diff --git a/include/boost/unordered/detail/extract_key.hpp b/include/boost/unordered/detail/extract_key.hpp index d65e514f..dc9e70f8 100644 --- a/include/boost/unordered/detail/extract_key.hpp +++ b/include/boost/unordered/detail/extract_key.hpp @@ -35,8 +35,7 @@ namespace detail { enum { value = sizeof(test(make())) == sizeof(choice2::type) }; - typedef BOOST_DEDUCED_TYPENAME - boost::detail::if_true:: + typedef typename boost::detail::if_true:: BOOST_NESTED_TEMPLATE then::type type; }; @@ -94,7 +93,7 @@ namespace detail { struct map_extractor { typedef ValueType value_type; - typedef BOOST_DEDUCED_TYPENAME ::boost::remove_const::type key_type; + typedef typename ::boost::remove_const::type key_type; static key_type const& extract(value_type const& v) { @@ -176,11 +175,11 @@ namespace detail { } \ \ template \ - static BOOST_DEDUCED_TYPENAME is_key::type \ + static typename is_key::type \ extract(boost::unordered::piecewise_construct_t, \ namespace_::tuple const& k, T2&&) \ { \ - return BOOST_DEDUCED_TYPENAME is_key::type( \ + return typename is_key::type( \ namespace_::get<0>(k)); \ } @@ -194,11 +193,11 @@ namespace detail { } \ \ template \ - static BOOST_DEDUCED_TYPENAME is_key::type \ + static typename is_key::type \ extract(boost::unordered::piecewise_construct_t, \ namespace_::tuple const& k) \ { \ - return BOOST_DEDUCED_TYPENAME is_key::type( \ + return typename is_key::type( \ namespace_::get<0>(k)); \ } diff --git a/include/boost/unordered/detail/node.hpp b/include/boost/unordered/detail/node.hpp index 060cfd30..ab2adb3f 100644 --- a/include/boost/unordered/detail/node.hpp +++ b/include/boost/unordered/detail/node.hpp @@ -59,11 +59,9 @@ namespace boost { namespace unordered { namespace detail { { bucket& operator=(bucket const&); public: - typedef BOOST_DEDUCED_TYPENAME - ::boost::unordered::detail::rebind_wrap::type + typedef typename ::boost::unordered::detail::rebind_wrap::type bucket_allocator; - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::pointer bucket_ptr; + typedef typename allocator_traits::pointer bucket_ptr; typedef bucket_ptr node_ptr; node_ptr next_; @@ -77,7 +75,7 @@ namespace boost { namespace unordered { namespace detail { struct value_base { typedef ValueType value_type; - BOOST_DEDUCED_TYPENAME ::boost::aligned_storage< + typename ::boost::aligned_storage< sizeof(value_type), ::boost::alignment_of::value>::type data_; @@ -107,12 +105,12 @@ namespace boost { namespace unordered { namespace detail { template struct ungrouped_node : ::boost::unordered::detail::bucket, - value_base::value_type> + value_base::value_type> { typedef ::boost::unordered::detail::bucket bucket; - typedef BOOST_DEDUCED_TYPENAME bucket::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME bucket::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME allocator_traits::value_type value_type; + typedef typename bucket::bucket_ptr bucket_ptr; + typedef typename bucket::node_ptr node_ptr; + typedef typename allocator_traits::value_type value_type; std::size_t hash_; @@ -182,12 +180,12 @@ namespace boost { namespace unordered { namespace detail { template struct grouped_node : ::boost::unordered::detail::bucket, - value_base::value_type> + value_base::value_type> { typedef ::boost::unordered::detail::bucket bucket; - typedef BOOST_DEDUCED_TYPENAME bucket::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME bucket::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME allocator_traits::value_type value_type; + typedef typename bucket::bucket_ptr bucket_ptr; + typedef typename bucket::node_ptr node_ptr; + typedef typename allocator_traits::value_type value_type; std::size_t hash_; node_ptr group_prev_; diff --git a/include/boost/unordered/detail/table.hpp b/include/boost/unordered/detail/table.hpp index 7f3fa6bb..9780d918 100644 --- a/include/boost/unordered/detail/table.hpp +++ b/include/boost/unordered/detail/table.hpp @@ -23,22 +23,22 @@ namespace boost { namespace unordered { namespace detail { table(table const&); table& operator=(table const&); public: - typedef BOOST_DEDUCED_TYPENAME T::hasher hasher; - typedef BOOST_DEDUCED_TYPENAME T::key_equal key_equal; - typedef BOOST_DEDUCED_TYPENAME T::value_allocator value_allocator; - typedef BOOST_DEDUCED_TYPENAME T::key_type key_type; - typedef BOOST_DEDUCED_TYPENAME T::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME T::functions functions; - typedef BOOST_DEDUCED_TYPENAME T::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME T::extractor extractor; - typedef BOOST_DEDUCED_TYPENAME T::node_constructor node_constructor; + typedef typename T::hasher hasher; + typedef typename T::key_equal key_equal; + typedef typename T::value_allocator value_allocator; + typedef typename T::key_type key_type; + typedef typename T::value_type value_type; + typedef typename T::functions functions; + typedef typename T::buckets buckets; + typedef typename T::extractor extractor; + typedef typename T::node_constructor node_constructor; - typedef BOOST_DEDUCED_TYPENAME T::node node; - typedef BOOST_DEDUCED_TYPENAME T::bucket bucket; - typedef BOOST_DEDUCED_TYPENAME T::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME T::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME T::node_allocator node_allocator; - typedef BOOST_DEDUCED_TYPENAME T::iterator_pair iterator_pair; + typedef typename T::node node; + typedef typename T::bucket bucket; + typedef typename T::node_ptr node_ptr; + typedef typename T::bucket_ptr bucket_ptr; + typedef typename T::node_allocator node_allocator; + typedef typename T::iterator_pair iterator_pair; // Members @@ -485,11 +485,11 @@ namespace boost { namespace unordered { namespace detail { typedef ::boost::unordered::detail::buckets buckets; typedef ::boost::unordered::detail::functions functions; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; - typedef BOOST_DEDUCED_TYPENAME buckets::bucket bucket; - typedef BOOST_DEDUCED_TYPENAME buckets::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME buckets::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME buckets::node_allocator node_allocator; + typedef typename buckets::node node; + typedef typename buckets::bucket bucket; + typedef typename buckets::node_ptr node_ptr; + typedef typename buckets::bucket_ptr bucket_ptr; + typedef typename buckets::node_allocator node_allocator; typedef std::pair iterator_pair; }; @@ -514,18 +514,18 @@ namespace boost { namespace unordered { namespace iterator_detail { class l_iterator : public ::boost::iterator < std::forward_iterator_tag, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type, + typename boost::unordered::detail::allocator_traits::value_type, std::ptrdiff_t, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::pointer, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type&> + typename boost::unordered::detail::allocator_traits::pointer, + typename boost::unordered::detail::allocator_traits::value_type&> { public: - typedef BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type value_type; + typedef typename boost::unordered::detail::allocator_traits::value_type value_type; private: typedef ::boost::unordered::detail::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME buckets::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; + typedef typename buckets::node_ptr node_ptr; + typedef typename buckets::node node; typedef cl_iterator const_local_iterator; friend class cl_iterator; @@ -538,7 +538,7 @@ namespace boost { namespace unordered { namespace iterator_detail { l_iterator() : ptr_() {} l_iterator(node_ptr x, std::size_t b, std::size_t c) : ptr_(x), bucket_(b), bucket_count_(c) {} - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type& operator*() const { + typename boost::unordered::detail::allocator_traits::value_type& operator*() const { return node::get_value(ptr_); } value_type* operator->() const { @@ -575,18 +575,18 @@ namespace boost { namespace unordered { namespace iterator_detail { class cl_iterator : public ::boost::iterator < std::forward_iterator_tag, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type, + typename boost::unordered::detail::allocator_traits::value_type, std::ptrdiff_t, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::const_pointer, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type const& > + typename boost::unordered::detail::allocator_traits::const_pointer, + typename boost::unordered::detail::allocator_traits::value_type const& > { public: - typedef BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type value_type; + typedef typename boost::unordered::detail::allocator_traits::value_type value_type; private: typedef ::boost::unordered::detail::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME buckets::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; + typedef typename buckets::node_ptr node_ptr; + typedef typename buckets::node node; typedef l_iterator local_iterator; friend class l_iterator; @@ -602,7 +602,7 @@ namespace boost { namespace unordered { namespace iterator_detail { cl_iterator(local_iterator x) : ptr_(x.ptr_), bucket_(x.bucket_), bucket_count_(x.bucket_count_) {} - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type const& + typename boost::unordered::detail::allocator_traits::value_type const& operator*() const { return node::get_value(ptr_); } @@ -640,18 +640,18 @@ namespace boost { namespace unordered { namespace iterator_detail { class iterator : public ::boost::iterator < std::forward_iterator_tag, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type, + typename boost::unordered::detail::allocator_traits::value_type, std::ptrdiff_t, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::pointer, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type& > + typename boost::unordered::detail::allocator_traits::pointer, + typename boost::unordered::detail::allocator_traits::value_type& > { public: - typedef BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type value_type; + typedef typename boost::unordered::detail::allocator_traits::value_type value_type; private: typedef ::boost::unordered::detail::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; - typedef BOOST_DEDUCED_TYPENAME buckets::node_ptr node_ptr; + typedef typename buckets::node node; + typedef typename buckets::node_ptr node_ptr; typedef c_iterator const_iterator; friend class c_iterator; node_ptr node_; @@ -660,7 +660,7 @@ namespace boost { namespace unordered { namespace iterator_detail { iterator() : node_() {} explicit iterator(node_ptr const& x) : node_(x) {} - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type& operator*() const { + typename boost::unordered::detail::allocator_traits::value_type& operator*() const { return node::get_value(node_); } value_type* operator->() const { @@ -690,18 +690,18 @@ namespace boost { namespace unordered { namespace iterator_detail { class c_iterator : public ::boost::iterator < std::forward_iterator_tag, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type, + typename boost::unordered::detail::allocator_traits::value_type, std::ptrdiff_t, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::const_pointer, - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type const& > + typename boost::unordered::detail::allocator_traits::const_pointer, + typename boost::unordered::detail::allocator_traits::value_type const& > { public: - typedef BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type value_type; + typedef typename boost::unordered::detail::allocator_traits::value_type value_type; private: typedef ::boost::unordered::detail::buckets buckets; - typedef BOOST_DEDUCED_TYPENAME buckets::node node; - typedef BOOST_DEDUCED_TYPENAME buckets::node_ptr node_ptr; + typedef typename buckets::node node; + typedef typename buckets::node_ptr node_ptr; typedef ::boost::unordered::iterator_detail::iterator iterator; friend class ::boost::unordered::iterator_detail::iterator; @@ -726,7 +726,7 @@ namespace boost { namespace unordered { namespace iterator_detail { c_iterator() : node_() {} explicit c_iterator(node_ptr const& x) : node_(x) {} c_iterator(iterator const& x) : node_(x.node_) {} - BOOST_DEDUCED_TYPENAME boost::unordered::detail::allocator_traits::value_type const& operator*() const { + typename boost::unordered::detail::allocator_traits::value_type const& operator*() const { return node::get_value(node_); } value_type const* operator->() const { diff --git a/include/boost/unordered/detail/unique.hpp b/include/boost/unordered/detail/unique.hpp index f81437e3..5e8cc8fa 100644 --- a/include/boost/unordered/detail/unique.hpp +++ b/include/boost/unordered/detail/unique.hpp @@ -15,19 +15,19 @@ namespace boost { namespace unordered { namespace detail { class unique_table : public T::table_base { public: - typedef BOOST_DEDUCED_TYPENAME T::hasher hasher; - typedef BOOST_DEDUCED_TYPENAME T::key_equal key_equal; - typedef BOOST_DEDUCED_TYPENAME T::value_allocator value_allocator; - typedef BOOST_DEDUCED_TYPENAME T::key_type key_type; - typedef BOOST_DEDUCED_TYPENAME T::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME T::table_base table_base; - typedef BOOST_DEDUCED_TYPENAME T::node_constructor node_constructor; - typedef BOOST_DEDUCED_TYPENAME T::node_allocator node_allocator; + typedef typename T::hasher hasher; + typedef typename T::key_equal key_equal; + typedef typename T::value_allocator value_allocator; + typedef typename T::key_type key_type; + typedef typename T::value_type value_type; + typedef typename T::table_base table_base; + typedef typename T::node_constructor node_constructor; + typedef typename T::node_allocator node_allocator; - typedef BOOST_DEDUCED_TYPENAME T::node node; - typedef BOOST_DEDUCED_TYPENAME T::node_ptr node_ptr; - typedef BOOST_DEDUCED_TYPENAME T::bucket_ptr bucket_ptr; - typedef BOOST_DEDUCED_TYPENAME T::extractor extractor; + typedef typename T::node node; + typedef typename T::node_ptr node_ptr; + typedef typename T::bucket_ptr bucket_ptr; + typedef typename T::extractor extractor; typedef std::pair emplace_return; @@ -118,7 +118,7 @@ namespace boost { namespace unordered { namespace detail { value_type& operator[](key_type const& k) { - typedef BOOST_DEDUCED_TYPENAME value_type::second_type mapped_type; + typedef typename value_type::second_type mapped_type; std::size_t hash = this->hash_function()(k); std::size_t bucket_index = hash % this->bucket_count_; @@ -399,10 +399,10 @@ namespace boost { namespace unordered { namespace detail { template struct set : public types< - BOOST_DEDUCED_TYPENAME allocator_traits::value_type, - BOOST_DEDUCED_TYPENAME allocator_traits::value_type, + typename allocator_traits::value_type, + typename allocator_traits::value_type, H, P, A, - set_extractor::value_type>, + set_extractor::value_type>, true> { typedef ::boost::unordered::detail::unique_table > impl; @@ -411,9 +411,9 @@ namespace boost { namespace unordered { namespace detail { template struct map : public types< - K, BOOST_DEDUCED_TYPENAME allocator_traits::value_type, + K, typename allocator_traits::value_type, H, P, A, - map_extractor::value_type>, + map_extractor::value_type>, true> { typedef ::boost::unordered::detail::unique_table > impl; diff --git a/include/boost/unordered/detail/util.hpp b/include/boost/unordered/detail/util.hpp index b2a66282..e353bd73 100644 --- a/include/boost/unordered/detail/util.hpp +++ b/include/boost/unordered/detail/util.hpp @@ -234,7 +234,7 @@ namespace boost { namespace unordered { namespace detail { inline std::size_t insert_size(I i, I j) { return insert_size(i, j, - BOOST_DEDUCED_TYPENAME ::boost::iterator_traversal::type()); + typename ::boost::iterator_traversal::type()); } template @@ -285,8 +285,8 @@ namespace boost { namespace unordered { namespace detail { : private generate_base::type, private generate_base::type { - typedef BOOST_DEDUCED_TYPENAME generate_base::type base1; - typedef BOOST_DEDUCED_TYPENAME generate_base::type base2; + typedef typename generate_base::type base1; + typedef typename generate_base::type base2; typedef T1 first_type; typedef T2 second_type; diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index e11dc166..7f080b55 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -52,24 +52,21 @@ namespace unordered private: #endif - typedef BOOST_DEDUCED_TYPENAME - ::boost::unordered::detail::rebind_wrap< + typedef typename ::boost::unordered::detail::rebind_wrap< allocator_type, value_type>::type value_allocator; typedef ::boost::unordered::detail::allocator_traits allocator_traits; typedef ::boost::unordered::detail::map types; - typedef BOOST_DEDUCED_TYPENAME types::impl table; + typedef typename types::impl table; - typedef BOOST_DEDUCED_TYPENAME types::node_ptr node_ptr; + typedef typename types::node_ptr node_ptr; public: - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::pointer pointer; - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::const_pointer const_pointer; + typedef typename allocator_traits::pointer pointer; + typedef typename allocator_traits::const_pointer const_pointer; typedef value_type& reference; typedef value_type const& const_reference; @@ -403,8 +400,7 @@ namespace unordered private: #endif - typedef BOOST_DEDUCED_TYPENAME - ::boost::unordered::detail::rebind_wrap< + typedef typename ::boost::unordered::detail::rebind_wrap< allocator_type, value_type>::type value_allocator; typedef ::boost::unordered::detail::allocator_traits @@ -412,16 +408,14 @@ namespace unordered typedef ::boost::unordered::detail::multimap types; - typedef BOOST_DEDUCED_TYPENAME types::impl table; + typedef typename types::impl table; - typedef BOOST_DEDUCED_TYPENAME types::node_ptr node_ptr; + typedef typename types::node_ptr node_ptr; public: - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::pointer pointer; - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::const_pointer const_pointer; + typedef typename allocator_traits::pointer pointer; + typedef typename allocator_traits::const_pointer const_pointer; typedef value_type& reference; typedef value_type const& const_reference; @@ -851,7 +845,7 @@ namespace unordered #if defined(BOOST_UNORDERED_STD_FORWARD_MOVE) template template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_map::emplace(Args&&... args) { return table_.emplace(std::forward(args)...); @@ -859,7 +853,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::emplace_hint(const_iterator, Args&&... args) { return iterator(table_.emplace(std::forward(args)...).first); @@ -868,7 +862,7 @@ namespace unordered #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100)) template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_map::emplace( boost::unordered::detail::empty_emplace, value_type v @@ -878,7 +872,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::emplace_hint(const_iterator, boost::unordered::detail::empty_emplace, value_type v @@ -893,9 +887,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - std::pair< \ - BOOST_DEDUCED_TYPENAME unordered_map::iterator, \ - bool> \ + std::pair::iterator, bool> \ unordered_map::emplace( \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ { \ @@ -906,7 +898,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_map::iterator \ + typename unordered_map::iterator \ unordered_map::emplace_hint( \ const_iterator, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n) \ @@ -924,14 +916,14 @@ namespace unordered #endif template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_map::insert(value_type const& obj) { return table_.emplace(obj); } template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::insert(const_iterator, value_type const& obj) { @@ -940,14 +932,14 @@ namespace unordered #if BOOST_UNORDERED_USE_RV_REF template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_map::insert(BOOST_RV_REF(value_type) obj) { return table_.emplace(boost::move(obj)); } template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::insert(const_iterator, BOOST_RV_REF(value_type) obj) { @@ -972,21 +964,21 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::erase(const_iterator position) { return iterator(table_.erase(position.node_)); } template - BOOST_DEDUCED_TYPENAME unordered_map::size_type + typename unordered_map::size_type unordered_map::erase(const key_type& k) { return table_.erase_key(k); } template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::erase( const_iterator first, const_iterator last) { @@ -1008,35 +1000,35 @@ namespace unordered // observers template - BOOST_DEDUCED_TYPENAME unordered_map::hasher + typename unordered_map::hasher unordered_map::hash_function() const { return table_.hash_function(); } template - BOOST_DEDUCED_TYPENAME unordered_map::key_equal + typename unordered_map::key_equal unordered_map::key_eq() const { return table_.key_eq(); } template - BOOST_DEDUCED_TYPENAME unordered_map::mapped_type& + typename unordered_map::mapped_type& unordered_map::operator[](const key_type &k) { return table_[k].second; } template - BOOST_DEDUCED_TYPENAME unordered_map::mapped_type& + typename unordered_map::mapped_type& unordered_map::at(const key_type& k) { return table_.at(k).second; } template - BOOST_DEDUCED_TYPENAME unordered_map::mapped_type const& + typename unordered_map::mapped_type const& unordered_map::at(const key_type& k) const { return table_.at(k).second; @@ -1045,14 +1037,14 @@ namespace unordered // lookup template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::find(const key_type& k) { return iterator(table_.find_node(k)); } template - BOOST_DEDUCED_TYPENAME unordered_map::const_iterator + typename unordered_map::const_iterator unordered_map::find(const key_type& k) const { return const_iterator(table_.find_node(k)); @@ -1061,7 +1053,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_map::iterator + typename unordered_map::iterator unordered_map::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1073,7 +1065,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_map::const_iterator + typename unordered_map::const_iterator unordered_map::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1083,7 +1075,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_map::size_type + typename unordered_map::size_type unordered_map::count(const key_type& k) const { return table_.count(k); @@ -1091,8 +1083,8 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_map::iterator, - BOOST_DEDUCED_TYPENAME unordered_map::iterator> + typename unordered_map::iterator, + typename unordered_map::iterator> unordered_map::equal_range(const key_type& k) { return table_.equal_range(k); @@ -1100,15 +1092,15 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_map::const_iterator, - BOOST_DEDUCED_TYPENAME unordered_map::const_iterator> + typename unordered_map::const_iterator, + typename unordered_map::const_iterator> unordered_map::equal_range(const key_type& k) const { return table_.equal_range(k); } template - BOOST_DEDUCED_TYPENAME unordered_map::size_type + typename unordered_map::size_type unordered_map::bucket_size(size_type n) const { return table_.bucket_size(n); @@ -1284,7 +1276,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::emplace(Args&&... args) { return iterator(table_.emplace(std::forward(args)...)); @@ -1292,7 +1284,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::emplace_hint( const_iterator, Args&&... args) { @@ -1303,7 +1295,7 @@ namespace unordered #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100)) template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::emplace( boost::unordered::detail::empty_emplace, value_type v @@ -1313,7 +1305,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::emplace_hint(const_iterator, boost::unordered::detail::empty_emplace, value_type v @@ -1328,7 +1320,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator \ + typename unordered_multimap::iterator \ unordered_multimap::emplace( \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ { \ @@ -1340,7 +1332,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator \ + typename unordered_multimap::iterator \ unordered_multimap::emplace_hint( \ const_iterator, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ @@ -1357,14 +1349,14 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::insert(value_type const& obj) { return iterator(table_.emplace(obj)); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::insert( const_iterator, value_type const& obj) { @@ -1373,14 +1365,14 @@ namespace unordered #if BOOST_UNORDERED_USE_RV_REF template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::insert(BOOST_RV_REF(value_type) obj) { return iterator(table_.emplace(boost::move(obj))); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::insert( const_iterator, BOOST_RV_REF(value_type) obj) { @@ -1405,21 +1397,21 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::erase(const_iterator position) { return iterator(table_.erase(position.node_)); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::size_type + typename unordered_multimap::size_type unordered_multimap::erase(const key_type& k) { return table_.erase_key(k); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::erase( const_iterator first, const_iterator last) { @@ -1441,14 +1433,14 @@ namespace unordered // observers template - BOOST_DEDUCED_TYPENAME unordered_multimap::hasher + typename unordered_multimap::hasher unordered_multimap::hash_function() const { return table_.hash_function(); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::key_equal + typename unordered_multimap::key_equal unordered_multimap::key_eq() const { return table_.key_eq(); @@ -1457,14 +1449,14 @@ namespace unordered // lookup template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::find(const key_type& k) { return iterator(table_.find_node(k)); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::const_iterator + typename unordered_multimap::const_iterator unordered_multimap::find(const key_type& k) const { return const_iterator(table_.find_node(k)); @@ -1473,7 +1465,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator + typename unordered_multimap::iterator unordered_multimap::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1485,7 +1477,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multimap::const_iterator + typename unordered_multimap::const_iterator unordered_multimap::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1495,7 +1487,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_multimap::size_type + typename unordered_multimap::size_type unordered_multimap::count(const key_type& k) const { return table_.count(k); @@ -1503,8 +1495,8 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator, - BOOST_DEDUCED_TYPENAME unordered_multimap::iterator> + typename unordered_multimap::iterator, + typename unordered_multimap::iterator> unordered_multimap::equal_range(const key_type& k) { return table_.equal_range(k); @@ -1512,15 +1504,15 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_multimap::const_iterator, - BOOST_DEDUCED_TYPENAME unordered_multimap::const_iterator> + typename unordered_multimap::const_iterator, + typename unordered_multimap::const_iterator> unordered_multimap::equal_range(const key_type& k) const { return table_.equal_range(k); } template - BOOST_DEDUCED_TYPENAME unordered_multimap::size_type + typename unordered_multimap::size_type unordered_multimap::bucket_size(size_type n) const { return table_.bucket_size(n); diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index c8ef4a2e..c89a18cf 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -52,8 +52,7 @@ namespace unordered private: #endif - typedef BOOST_DEDUCED_TYPENAME - ::boost::unordered::detail::rebind_wrap< + typedef typename ::boost::unordered::detail::rebind_wrap< allocator_type, value_type>::type value_allocator; typedef ::boost::unordered::detail::allocator_traits @@ -61,16 +60,14 @@ namespace unordered typedef ::boost::unordered::detail::set types; - typedef BOOST_DEDUCED_TYPENAME types::impl table; + typedef typename types::impl table; - typedef BOOST_DEDUCED_TYPENAME types::node_ptr node_ptr; + typedef typename types::node_ptr node_ptr; public: - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::pointer pointer; - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::const_pointer const_pointer; + typedef typename allocator_traits::pointer pointer; + typedef typename allocator_traits::const_pointer const_pointer; typedef value_type& reference; typedef value_type const& const_reference; @@ -384,8 +381,7 @@ namespace unordered private: #endif - typedef BOOST_DEDUCED_TYPENAME - ::boost::unordered::detail::rebind_wrap< + typedef typename ::boost::unordered::detail::rebind_wrap< allocator_type, value_type>::type value_allocator; typedef ::boost::unordered::detail::allocator_traits @@ -393,16 +389,14 @@ namespace unordered typedef ::boost::unordered::detail::multiset types; - typedef BOOST_DEDUCED_TYPENAME types::impl table; + typedef typename types::impl table; - typedef BOOST_DEDUCED_TYPENAME types::node_ptr node_ptr; + typedef typename types::node_ptr node_ptr; public: - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::pointer pointer; - typedef BOOST_DEDUCED_TYPENAME - allocator_traits::const_pointer const_pointer; + typedef typename allocator_traits::pointer pointer; + typedef typename allocator_traits::const_pointer const_pointer; typedef value_type& reference; typedef value_type const& const_reference; @@ -818,7 +812,7 @@ namespace unordered #if defined(BOOST_UNORDERED_STD_FORWARD_MOVE) template template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_set::emplace(Args&&... args) { return table_.emplace(std::forward(args)...); @@ -826,7 +820,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::emplace_hint(const_iterator, Args&&... args) { return iterator(table_.emplace(std::forward(args)...).first); @@ -834,7 +828,7 @@ namespace unordered #else template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_set::emplace( boost::unordered::detail::empty_emplace, value_type v @@ -844,7 +838,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::emplace_hint(const_iterator, boost::unordered::detail::empty_emplace, value_type v @@ -858,9 +852,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - std::pair< \ - BOOST_DEDUCED_TYPENAME unordered_set::iterator, \ - bool> \ + std::pair::iterator, bool> \ unordered_set::emplace( \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ { \ @@ -871,7 +863,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_set::iterator \ + typename unordered_set::iterator \ unordered_set::emplace_hint( \ const_iterator, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n) \ @@ -889,14 +881,14 @@ namespace unordered #endif template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_set::insert(value_type const& obj) { return table_.emplace(obj); } template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::insert(const_iterator, value_type const& obj) { @@ -905,14 +897,14 @@ namespace unordered #if BOOST_UNORDERED_USE_RV_REF template - std::pair::iterator, bool> + std::pair::iterator, bool> unordered_set::insert(BOOST_RV_REF(value_type) obj) { return table_.emplace(boost::move(obj)); } template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::insert(const_iterator, BOOST_RV_REF(value_type) obj) { @@ -936,21 +928,21 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::erase(const_iterator position) { return iterator(table_.erase(position.node_)); } template - BOOST_DEDUCED_TYPENAME unordered_set::size_type + typename unordered_set::size_type unordered_set::erase(const key_type& k) { return table_.erase_key(k); } template - BOOST_DEDUCED_TYPENAME unordered_set::iterator + typename unordered_set::iterator unordered_set::erase(const_iterator first, const_iterator last) { return iterator(table_.erase_range(first.node_, last.node_)); @@ -971,14 +963,14 @@ namespace unordered // observers template - BOOST_DEDUCED_TYPENAME unordered_set::hasher + typename unordered_set::hasher unordered_set::hash_function() const { return table_.hash_function(); } template - BOOST_DEDUCED_TYPENAME unordered_set::key_equal + typename unordered_set::key_equal unordered_set::key_eq() const { return table_.key_eq(); @@ -987,7 +979,7 @@ namespace unordered // lookup template - BOOST_DEDUCED_TYPENAME unordered_set::const_iterator + typename unordered_set::const_iterator unordered_set::find(const key_type& k) const { return const_iterator(table_.find_node(k)); @@ -996,7 +988,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_set::const_iterator + typename unordered_set::const_iterator unordered_set::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1006,7 +998,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_set::size_type + typename unordered_set::size_type unordered_set::count(const key_type& k) const { return table_.count(k); @@ -1014,15 +1006,15 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_set::const_iterator, - BOOST_DEDUCED_TYPENAME unordered_set::const_iterator> + typename unordered_set::const_iterator, + typename unordered_set::const_iterator> unordered_set::equal_range(const key_type& k) const { return table_.equal_range(k); } template - BOOST_DEDUCED_TYPENAME unordered_set::size_type + typename unordered_set::size_type unordered_set::bucket_size(size_type n) const { return table_.bucket_size(n); @@ -1198,7 +1190,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::emplace(Args&&... args) { return iterator(table_.emplace(std::forward(args)...)); @@ -1206,7 +1198,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::emplace_hint( const_iterator, Args&&... args) { @@ -1216,7 +1208,7 @@ namespace unordered #else template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::emplace( boost::unordered::detail::empty_emplace, value_type v @@ -1226,7 +1218,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::emplace_hint(const_iterator, boost::unordered::detail::empty_emplace, value_type v @@ -1240,7 +1232,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator \ + typename unordered_multiset::iterator \ unordered_multiset::emplace( \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ { \ @@ -1252,7 +1244,7 @@ namespace unordered template < \ BOOST_UNORDERED_TEMPLATE_ARGS(z, n) \ > \ - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator \ + typename unordered_multiset::iterator \ unordered_multiset::emplace_hint( \ const_iterator, \ BOOST_UNORDERED_FUNCTION_PARAMS(z, n)) \ @@ -1269,14 +1261,14 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::insert(value_type const& obj) { return iterator(table_.emplace(obj)); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::insert(const_iterator, value_type const& obj) { @@ -1285,14 +1277,14 @@ namespace unordered #if BOOST_UNORDERED_USE_RV_REF template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::insert(BOOST_RV_REF(value_type) obj) { return iterator(table_.emplace(boost::move(obj))); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::insert(const_iterator, BOOST_RV_REF(value_type) obj) { @@ -1316,21 +1308,21 @@ namespace unordered #endif template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::erase(const_iterator position) { return iterator(table_.erase(position.node_)); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::size_type + typename unordered_multiset::size_type unordered_multiset::erase(const key_type& k) { return table_.erase_key(k); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::iterator + typename unordered_multiset::iterator unordered_multiset::erase(const_iterator first, const_iterator last) { return iterator(table_.erase_range(first.node_, last.node_)); @@ -1351,14 +1343,14 @@ namespace unordered // observers template - BOOST_DEDUCED_TYPENAME unordered_multiset::hasher + typename unordered_multiset::hasher unordered_multiset::hash_function() const { return table_.hash_function(); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::key_equal + typename unordered_multiset::key_equal unordered_multiset::key_eq() const { return table_.key_eq(); @@ -1367,7 +1359,7 @@ namespace unordered // lookup template - BOOST_DEDUCED_TYPENAME unordered_multiset::const_iterator + typename unordered_multiset::const_iterator unordered_multiset::find(const key_type& k) const { return const_iterator(table_.find_node(k)); @@ -1376,7 +1368,7 @@ namespace unordered template template - BOOST_DEDUCED_TYPENAME unordered_multiset::const_iterator + typename unordered_multiset::const_iterator unordered_multiset::find( CompatibleKey const& k, CompatibleHash const& hash, @@ -1386,7 +1378,7 @@ namespace unordered } template - BOOST_DEDUCED_TYPENAME unordered_multiset::size_type + typename unordered_multiset::size_type unordered_multiset::count(const key_type& k) const { return table_.count(k); @@ -1394,15 +1386,15 @@ namespace unordered template std::pair< - BOOST_DEDUCED_TYPENAME unordered_multiset::const_iterator, - BOOST_DEDUCED_TYPENAME unordered_multiset::const_iterator> + typename unordered_multiset::const_iterator, + typename unordered_multiset::const_iterator> unordered_multiset::equal_range(const key_type& k) const { return table_.equal_range(k); } template - BOOST_DEDUCED_TYPENAME unordered_multiset::size_type + typename unordered_multiset::size_type unordered_multiset::bucket_size(size_type n) const { return table_.bucket_size(n);