diff --git a/.travis.yml b/.travis.yml index eaa2200a..03f49936 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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} diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index 518001c8..81d2936b 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -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. diff --git a/include/boost/unordered/detail/map.hpp b/include/boost/unordered/detail/map.hpp index 1d963965..9b059d18 100644 --- a/include/boost/unordered/detail/map.hpp +++ b/include/boost/unordered/detail/map.hpp @@ -23,7 +23,11 @@ template struct map typedef boost::unordered::detail::allocator_traits value_allocator_traits; +#if BOOST_UNORDERED_INTEROPERABLE_NODES != 2 typedef boost::unordered::detail::pick_node pick; +#else + typedef boost::unordered::detail::pick_grouped_node 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_traits; -#if BOOST_UNORDERED_INTEROPERABLE_NODES - typedef boost::unordered::detail::pick_node pick; -#else +#if BOOST_UNORDERED_INTEROPERABLE_NODES != 1 typedef boost::unordered::detail::pick_grouped_node pick; +#else + typedef boost::unordered::detail::pick_node pick; #endif typedef typename pick::node node; typedef typename pick::bucket bucket; diff --git a/include/boost/unordered/detail/set.hpp b/include/boost/unordered/detail/set.hpp index 7b9bdca3..6de4423c 100644 --- a/include/boost/unordered/detail/set.hpp +++ b/include/boost/unordered/detail/set.hpp @@ -23,7 +23,11 @@ template struct set typedef boost::unordered::detail::allocator_traits value_allocator_traits; +#if BOOST_UNORDERED_INTEROPERABLE_NODES != 2 typedef boost::unordered::detail::pick_node pick; +#else + typedef boost::unordered::detail::pick_grouped_node pick; +#endif typedef typename pick::node node; typedef typename pick::bucket bucket; typedef typename pick::link_pointer link_pointer; @@ -64,10 +68,10 @@ template struct multiset typedef boost::unordered::detail::allocator_traits value_allocator_traits; -#if BOOST_UNORDERED_INTEROPERABLE_NODES - typedef boost::unordered::detail::pick_node pick; -#else +#if BOOST_UNORDERED_INTEROPERABLE_NODES != 1 typedef boost::unordered::detail::pick_grouped_node pick; +#else + typedef boost::unordered::detail::pick_node pick; #endif typedef typename pick::node node; typedef typename pick::bucket bucket;