From ce4b8402993eb21dc0dce5b4f71c8e5de0a6e130 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sun, 14 Aug 2016 20:55:40 +0100 Subject: [PATCH] Map/set details types in individual headers. --- include/boost/unordered/detail/equivalent.hpp | 49 --------------- include/boost/unordered/detail/map.hpp | 62 +++++++++++++++++++ include/boost/unordered/detail/set.hpp | 58 +++++++++++++++++ include/boost/unordered/detail/unique.hpp | 48 -------------- include/boost/unordered/unordered_map.hpp | 4 +- include/boost/unordered/unordered_set.hpp | 5 +- 6 files changed, 122 insertions(+), 104 deletions(-) create mode 100644 include/boost/unordered/detail/map.hpp create mode 100644 include/boost/unordered/detail/set.hpp diff --git a/include/boost/unordered/detail/equivalent.hpp b/include/boost/unordered/detail/equivalent.hpp index 7e7c757c..df3953fb 100644 --- a/include/boost/unordered/detail/equivalent.hpp +++ b/include/boost/unordered/detail/equivalent.hpp @@ -130,55 +130,6 @@ namespace boost { namespace unordered { namespace detail { typedef typename pick::link_pointer link_pointer; }; - template - struct multiset - { - typedef boost::unordered::detail::multiset types; - - typedef A allocator; - typedef T value_type; - typedef H hasher; - typedef P key_equal; - typedef T key_type; - - typedef boost::unordered::detail::allocator_traits traits; - typedef boost::unordered::detail::pick_grouped_node pick; - typedef typename pick::node node; - typedef typename pick::bucket bucket; - typedef typename pick::link_pointer link_pointer; - - typedef boost::unordered::detail::grouped_table_impl table; - typedef boost::unordered::detail::set_extractor extractor; - - typedef typename boost::unordered::detail::pick_policy::type policy; - }; - - template - struct multimap - { - typedef boost::unordered::detail::multimap types; - - typedef A allocator; - typedef std::pair value_type; - typedef H hasher; - typedef P key_equal; - typedef K key_type; - - typedef boost::unordered::detail::allocator_traits traits; - typedef boost::unordered::detail::pick_grouped_node pick; - typedef typename pick::node node; - typedef typename pick::bucket bucket; - typedef typename pick::link_pointer link_pointer; - - typedef boost::unordered::detail::grouped_table_impl table; - typedef boost::unordered::detail::map_extractor - extractor; - - typedef typename boost::unordered::detail::pick_policy::type policy; - }; - template struct grouped_table_impl : boost::unordered::detail::table { diff --git a/include/boost/unordered/detail/map.hpp b/include/boost/unordered/detail/map.hpp new file mode 100644 index 00000000..27ad3f47 --- /dev/null +++ b/include/boost/unordered/detail/map.hpp @@ -0,0 +1,62 @@ + +// Copyright (C) 2005-2016 Daniel James +// Distributed under 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) + +#include +#include +#include +#include + +namespace boost { namespace unordered { namespace detail { + template + struct map + { + typedef boost::unordered::detail::map types; + + typedef A allocator; + typedef std::pair value_type; + typedef H hasher; + typedef P key_equal; + typedef K key_type; + + typedef boost::unordered::detail::allocator_traits + traits; + typedef boost::unordered::detail::pick_node pick; + typedef typename pick::node node; + typedef typename pick::bucket bucket; + typedef typename pick::link_pointer link_pointer; + + typedef boost::unordered::detail::table_impl table; + typedef boost::unordered::detail::map_extractor + extractor; + + typedef typename boost::unordered::detail::pick_policy::type policy; + }; + + template + struct multimap + { + typedef boost::unordered::detail::multimap types; + + typedef A allocator; + typedef std::pair value_type; + typedef H hasher; + typedef P key_equal; + typedef K key_type; + + typedef boost::unordered::detail::allocator_traits traits; + typedef boost::unordered::detail::pick_grouped_node pick; + typedef typename pick::node node; + typedef typename pick::bucket bucket; + typedef typename pick::link_pointer link_pointer; + + typedef boost::unordered::detail::grouped_table_impl table; + typedef boost::unordered::detail::map_extractor + extractor; + + typedef typename boost::unordered::detail::pick_policy::type policy; + }; + +}}} diff --git a/include/boost/unordered/detail/set.hpp b/include/boost/unordered/detail/set.hpp new file mode 100644 index 00000000..861ddcf0 --- /dev/null +++ b/include/boost/unordered/detail/set.hpp @@ -0,0 +1,58 @@ + +// Copyright (C) 2005-2016 Daniel James +// Distributed under 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) + +#include +#include +#include +#include + +namespace boost { namespace unordered { namespace detail { + template + struct set + { + typedef boost::unordered::detail::set types; + + typedef A allocator; + typedef T value_type; + typedef H hasher; + typedef P key_equal; + typedef T key_type; + + typedef boost::unordered::detail::allocator_traits traits; + typedef boost::unordered::detail::pick_node pick; + typedef typename pick::node node; + typedef typename pick::bucket bucket; + typedef typename pick::link_pointer link_pointer; + + typedef boost::unordered::detail::table_impl table; + typedef boost::unordered::detail::set_extractor extractor; + + typedef typename boost::unordered::detail::pick_policy::type policy; + }; + + template + struct multiset + { + typedef boost::unordered::detail::multiset types; + + typedef A allocator; + typedef T value_type; + typedef H hasher; + typedef P key_equal; + typedef T key_type; + + typedef boost::unordered::detail::allocator_traits traits; + typedef boost::unordered::detail::pick_grouped_node pick; + typedef typename pick::node node; + typedef typename pick::bucket bucket; + typedef typename pick::link_pointer link_pointer; + + typedef boost::unordered::detail::grouped_table_impl table; + typedef boost::unordered::detail::set_extractor extractor; + + typedef typename boost::unordered::detail::pick_policy::type policy; + }; +}}} diff --git a/include/boost/unordered/detail/unique.hpp b/include/boost/unordered/detail/unique.hpp index b08a602c..1a3342bc 100644 --- a/include/boost/unordered/detail/unique.hpp +++ b/include/boost/unordered/detail/unique.hpp @@ -126,54 +126,6 @@ namespace boost { namespace unordered { namespace detail { typedef typename pick::link_pointer link_pointer; }; - template - struct set - { - typedef boost::unordered::detail::set types; - - typedef A allocator; - typedef T value_type; - typedef H hasher; - typedef P key_equal; - typedef T key_type; - - typedef boost::unordered::detail::allocator_traits traits; - typedef boost::unordered::detail::pick_node pick; - typedef typename pick::node node; - typedef typename pick::bucket bucket; - typedef typename pick::link_pointer link_pointer; - - typedef boost::unordered::detail::table_impl table; - typedef boost::unordered::detail::set_extractor extractor; - - typedef typename boost::unordered::detail::pick_policy::type policy; - }; - - template - struct map - { - typedef boost::unordered::detail::map types; - - typedef A allocator; - typedef std::pair value_type; - typedef H hasher; - typedef P key_equal; - typedef K key_type; - - typedef boost::unordered::detail::allocator_traits - traits; - typedef boost::unordered::detail::pick_node pick; - typedef typename pick::node node; - typedef typename pick::bucket bucket; - typedef typename pick::link_pointer link_pointer; - - typedef boost::unordered::detail::table_impl table; - typedef boost::unordered::detail::map_extractor - extractor; - - typedef typename boost::unordered::detail::pick_policy::type policy; - }; - template struct table_impl : boost::unordered::detail::table { diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index 9b180796..3904e56e 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -15,9 +15,7 @@ #endif #include -#include -#include -#include +#include #include #include diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 853b5d73..c8c06215 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -14,10 +14,7 @@ #pragma once #endif -#include -#include -#include -#include +#include #include #include