///////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2015-2015. // // 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) // // See http://www.boost.org/libs/intrusive for documentation. // ///////////////////////////////////////////////////////////////////////////// #ifndef BOOST_INTRUSIVE_TEST_UNORDERED_TEST_COMMON_HPP #define BOOST_INTRUSIVE_TEST_UNORDERED_TEST_COMMON_HPP #include #include #include "bptr_value.hpp" #include "test_common.hpp" namespace boost { namespace intrusive { template struct unordered_hooks { typedef unordered_set_base_hook > base_hook_type; typedef unordered_set_base_hook < link_mode , void_pointer , tag , store_hash > auto_base_hook_type; typedef unordered_set_member_hook < void_pointer , optimize_multikey > member_hook_type; typedef unordered_set_member_hook < link_mode, void_pointer , store_hash , optimize_multikey > auto_member_hook_type; typedef nonhook_node_member< unordered_node_traits< VoidPointer, true, true >, unordered_algorithms > nonhook_node_member_type; }; template < class ValueTraits, bool DefaultHolder, bool Map > struct unordered_rebinder_common { typedef typename ValueTraits::value_type value_type; typedef typename detail::if_c < DefaultHolder , typename detail::if_c < detail::is_same::value , header_holder_type< bounded_pointer_holder< BPtr_Value > > , void >::type , header_holder_type< heap_node_holder< typename ValueTraits::node_ptr > > >::type holder_opt; typedef typename detail::if_c < Map, key_of_value >, void >::type key_of_value_opt; }; } //namespace intrusive { } //namespace boost { #endif //BOOST_INTRUSIVE_TEST_UNORDERED_TEST_COMMON_HPP