///////////////////////////////////////////////////////////////////////////// // // (C) Copyright Olaf Krzikalla 2004-2006. // (C) Copyright Ion Gaztanaga 2006-2007. // // 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. // ///////////////////////////////////////////////////////////////////////////// #include #include #include "itestvalue.hpp" #include "smart_ptr.hpp" #include "generic_multiset_test.hpp" namespace boost { namespace intrusive { namespace test { #if !defined (BOOST_INTRUSIVE_VARIADIC_TEMPLATES) template #else template #endif struct has_rebalance > { static const bool value = true; }; }}} template< class ValueType , class Option1 = boost::intrusive::none , class Option2 = boost::intrusive::none , class Option3 = boost::intrusive::none > struct GetContainer { typedef boost::intrusive::sg_multiset < ValueType , Option1 , Option2 , Option3 > type; }; template< class ValueType , class Option1 = boost::intrusive::none , class Option2 = boost::intrusive::none , class Option3 = boost::intrusive::none > struct GetContainerFixedAlpha { typedef boost::intrusive::sg_multiset < ValueType , Option1 , Option2 , Option3 , boost::intrusive::floating_point > type; }; template class test_main_template { public: int operator()() { using namespace boost::intrusive; typedef testvalue value_type; test::test_generic_multiset < typename detail::get_base_value_traits < value_type , typename value_type::bs_set_base_hook_t >::type , GetContainer >::test_all(); test::test_generic_multiset < typename detail::get_member_value_traits < value_type , member_hook< value_type , typename value_type::bs_set_member_hook_t , &value_type::sg_set_node_ > >::type , GetContainer >::test_all(); test::test_generic_multiset < typename detail::get_base_value_traits < value_type , typename value_type::bs_set_base_hook_t >::type , GetContainerFixedAlpha >::test_all(); test::test_generic_multiset < typename detail::get_member_value_traits < value_type , member_hook< value_type , typename value_type::bs_set_member_hook_t , &value_type::sg_set_node_ > >::type , GetContainerFixedAlpha >::test_all(); return 0; } }; int main( int, char* [] ) { test_main_template()(); test_main_template >()(); return boost::report_errors(); }