Option to use grouped nodes everywhere

Seems to work okay, but I'm not happy with and of the options. So I'm
going to look into doing something else before the next release.
This commit is contained in:
Daniel James
2017-04-25 09:54:28 +01:00
parent cba643fc51
commit 679b73098e
4 changed files with 17 additions and 8 deletions

View File

@ -44,8 +44,8 @@ matrix:
user_config="using gcc : : g++-4.8 -fsanitize=address -Werror --std=c++03 -DBOOST_UNORDERED_INTEROPERABLE_NODES=1 ;"
- compiler: clang
env: |
label="gcc C++11 interopable1";
user_config="using clang : : clang++ -fsanitize=address -Werror --std=c++03 -DBOOST_UNORDERED_INTEROPERABLE_NODES=1 ;"
label="gcc C++11 interopable2";
user_config="using clang : : clang++ -fsanitize=address -Werror --std=c++03 -DBOOST_UNORDERED_INTEROPERABLE_NODES=2 ;"
before_script:
- cd ${TRAVIS_BUILD_DIR}

View File

@ -71,6 +71,7 @@
//
// 0 = Use different nodes
// 1 = Use ungrouped nodes everywhere
// 2 = Use grouped nodes everywhere
//
// Might add an extra value to use grouped nodes everywhere later.

View File

@ -23,7 +23,11 @@ template <typename A, typename K, typename M, typename H, typename P> struct map
typedef boost::unordered::detail::allocator_traits<value_allocator>
value_allocator_traits;
#if BOOST_UNORDERED_INTEROPERABLE_NODES != 2
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#else
typedef boost::unordered::detail::pick_grouped_node<A, value_type> pick;
#endif
typedef typename pick::node node;
typedef typename pick::bucket bucket;
typedef typename pick::link_pointer link_pointer;
@ -65,10 +69,10 @@ struct multimap
typedef boost::unordered::detail::allocator_traits<value_allocator>
value_allocator_traits;
#if BOOST_UNORDERED_INTEROPERABLE_NODES
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#else
#if BOOST_UNORDERED_INTEROPERABLE_NODES != 1
typedef boost::unordered::detail::pick_grouped_node<A, value_type> pick;
#else
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#endif
typedef typename pick::node node;
typedef typename pick::bucket bucket;

View File

@ -23,7 +23,11 @@ template <typename A, typename T, typename H, typename P> struct set
typedef boost::unordered::detail::allocator_traits<value_allocator>
value_allocator_traits;
#if BOOST_UNORDERED_INTEROPERABLE_NODES != 2
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#else
typedef boost::unordered::detail::pick_grouped_node<A, value_type> pick;
#endif
typedef typename pick::node node;
typedef typename pick::bucket bucket;
typedef typename pick::link_pointer link_pointer;
@ -64,10 +68,10 @@ template <typename A, typename T, typename H, typename P> struct multiset
typedef boost::unordered::detail::allocator_traits<value_allocator>
value_allocator_traits;
#if BOOST_UNORDERED_INTEROPERABLE_NODES
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#else
#if BOOST_UNORDERED_INTEROPERABLE_NODES != 1
typedef boost::unordered::detail::pick_grouped_node<A, value_type> pick;
#else
typedef boost::unordered::detail::pick_node<A, value_type> pick;
#endif
typedef typename pick::node node;
typedef typename pick::bucket bucket;