sg_set_test.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 120 行

CPP
120
字号
///////////////////////////////////////////////////////////////////////////////// (C) Copyright Ion Gaztanaga  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 <boost/intrusive/detail/config_begin.hpp>#include <boost/intrusive/sg_set.hpp>#include "itestvalue.hpp"#include "smart_ptr.hpp"#include "generic_set_test.hpp"namespace boost { namespace intrusive { namespace test {#if !defined (BOOST_INTRUSIVE_VARIADIC_TEMPLATES)template<class T, class O1, class O2, class O3, class O4>#elsetemplate<class T, class ...Options>#endifstruct has_rebalance<boost::intrusive::sg_set<T,    #if !defined (BOOST_INTRUSIVE_VARIADIC_TEMPLATES)   O1, O2, O3, O4   #else   Options...   #endif> >{   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_set      < 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_set      < ValueType      , Option1      , Option2      , Option3      , boost::intrusive::floating_point<false>      > type;};template<class VoidPointer>class test_main_template{   public:   int operator()()   {      using namespace boost::intrusive;      typedef testvalue<VoidPointer, true> value_type;      test::test_generic_set < typename detail::get_base_value_traits                  < value_type                  , typename value_type::bs_set_base_hook_t                  >::type                , GetContainer                >::test_all();      test::test_generic_set < 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_set < typename detail::get_base_value_traits                  < value_type                  , typename value_type::bs_set_base_hook_t                  >::type                , GetContainerFixedAlpha                >::test_all();      test::test_generic_set < 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<void*>()();   test_main_template<boost::intrusive::smart_ptr<void> >()();   return boost::report_errors();}#include <boost/intrusive/detail/config_end.hpp>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?