mirror of
https://github.com/boostorg/intrusive.git
synced 2025-08-05 15:34:35 +02:00
Break options.hpp dependencies, now hooks don't depend on heavy meta-machinery.
This commit is contained in:
@@ -22,13 +22,12 @@
|
|||||||
#include <boost/intrusive/detail/any_node_and_algorithms.hpp>
|
#include <boost/intrusive/detail/any_node_and_algorithms.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/options.hpp>
|
||||||
#include <boost/intrusive/detail/generic_hook.hpp>
|
#include <boost/intrusive/detail/generic_hook.hpp>
|
||||||
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/pointer_rebind.hpp>
|
#include <boost/intrusive/pointer_rebind.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace intrusive {
|
namespace intrusive {
|
||||||
|
|
||||||
struct any_empty{};
|
|
||||||
|
|
||||||
//! Helper metafunction to define a \c \c any_base_hook that yields to the same
|
//! Helper metafunction to define a \c \c any_base_hook that yields to the same
|
||||||
//! type when the same options (either explicitly or implicitly) are used.
|
//! type when the same options (either explicitly or implicitly) are used.
|
||||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
||||||
@@ -238,39 +237,34 @@ class any_member_hook
|
|||||||
|
|
||||||
namespace detail{
|
namespace detail{
|
||||||
|
|
||||||
template<class ValueTraits>
|
BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(old_proto_value_traits_base_hook, hooktags::is_base_hook)
|
||||||
struct any_to_get_base_pointer_type
|
|
||||||
{
|
|
||||||
typedef typename pointer_rebind
|
|
||||||
<typename ValueTraits::hooktags::node_traits::node_ptr, void>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class ValueTraits>
|
|
||||||
struct any_to_get_member_pointer_type
|
|
||||||
{
|
|
||||||
typedef typename pointer_rebind
|
|
||||||
<typename ValueTraits::node_ptr, void>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
//!This option setter specifies that the container
|
//!This option setter specifies that the container
|
||||||
//!must use the specified base hook
|
//!must use the specified base hook
|
||||||
template<class BaseHook, template <class> class NodeTraits>
|
template<class BasicHook, template <class> class NodeTraits>
|
||||||
struct any_to_some_hook
|
struct any_to_some_hook
|
||||||
{
|
{
|
||||||
typedef typename BaseHook::template pack<any_empty>::proto_value_traits old_proto_value_traits;
|
typedef typename BasicHook::template pack<empty>::proto_value_traits old_proto_value_traits;
|
||||||
|
|
||||||
template<class Base>
|
template<class Base>
|
||||||
struct pack : public Base
|
struct pack : public Base
|
||||||
{
|
{
|
||||||
struct proto_value_traits : public old_proto_value_traits
|
struct proto_value_traits
|
||||||
{
|
{
|
||||||
|
//proto_value_traits::hooktags::is_base_hook is used by get_value_traits
|
||||||
|
//to detect base hooks, so mark it in case BasicHook has it.
|
||||||
|
struct hooktags
|
||||||
|
{
|
||||||
|
static const bool is_base_hook = old_proto_value_traits_base_hook_bool_is_true
|
||||||
|
<old_proto_value_traits>::value;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef old_proto_value_traits basic_hook_t;
|
||||||
static const bool is_any_hook = true;
|
static const bool is_any_hook = true;
|
||||||
typedef typename detail::eval_if_c
|
|
||||||
< detail::internal_base_hook_bool_is_true<old_proto_value_traits>::value
|
template<class VoidPtr>
|
||||||
, any_to_get_base_pointer_type<old_proto_value_traits>
|
struct node_traits_from_voidptr
|
||||||
, any_to_get_member_pointer_type<old_proto_value_traits>
|
{ typedef NodeTraits<VoidPtr> type; };
|
||||||
>::type void_pointer;
|
|
||||||
typedef NodeTraits<void_pointer> node_traits;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -281,55 +275,55 @@ struct any_to_some_hook
|
|||||||
|
|
||||||
//!This option setter specifies that
|
//!This option setter specifies that
|
||||||
//!any hook should behave as an slist hook
|
//!any hook should behave as an slist hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_slist_hook
|
struct any_to_slist_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_slist_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_slist_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This option setter specifies that
|
//!This option setter specifies that
|
||||||
//!any hook should behave as an list hook
|
//!any hook should behave as an list hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_list_hook
|
struct any_to_list_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_list_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_list_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This option setter specifies that
|
//!This option setter specifies that
|
||||||
//!any hook should behave as a set hook
|
//!any hook should behave as a set hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_set_hook
|
struct any_to_set_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_rbtree_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_rbtree_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This option setter specifies that
|
//!This option setter specifies that
|
||||||
//!any hook should behave as an avl_set hook
|
//!any hook should behave as an avl_set hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_avl_set_hook
|
struct any_to_avl_set_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_avltree_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_avltree_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This option setter specifies that any
|
//!This option setter specifies that any
|
||||||
//!hook should behave as a bs_set hook
|
//!hook should behave as a bs_set hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_bs_set_hook
|
struct any_to_bs_set_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_tree_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_tree_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This option setter specifies that any hook
|
//!This option setter specifies that any hook
|
||||||
//!should behave as an unordered set hook
|
//!should behave as an unordered set hook
|
||||||
template<class BaseHook>
|
template<class BasicHook>
|
||||||
struct any_to_unordered_set_hook
|
struct any_to_unordered_set_hook
|
||||||
/// @cond
|
/// @cond
|
||||||
: public detail::any_to_some_hook<BaseHook, any_unordered_node_traits>
|
: public detail::any_to_some_hook<BasicHook, any_unordered_node_traits>
|
||||||
/// @endcond
|
/// @endcond
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
#include <boost/intrusive/detail/ebo_functor_holder.hpp>
|
#include <boost/intrusive/detail/ebo_functor_holder.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/avltree_algorithms.hpp>
|
#include <boost/intrusive/avltree_algorithms.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/move/utility_core.hpp>
|
#include <boost/move/utility_core.hpp>
|
||||||
@@ -40,9 +40,16 @@ namespace intrusive {
|
|||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
|
||||||
|
struct default_avltree_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_avltree_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_avltree_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct avltree_defaults
|
struct avltree_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_avltree_hook proto_value_traits;
|
typedef default_avltree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -39,7 +39,7 @@
|
|||||||
#include <boost/intrusive/detail/size_holder.hpp>
|
#include <boost/intrusive/detail/size_holder.hpp>
|
||||||
#include <boost/intrusive/detail/algo_type.hpp>
|
#include <boost/intrusive/detail/algo_type.hpp>
|
||||||
|
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/bstree_algorithms.hpp>
|
#include <boost/intrusive/bstree_algorithms.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/parent_from_member.hpp>
|
#include <boost/intrusive/parent_from_member.hpp>
|
||||||
@@ -56,9 +56,16 @@ namespace intrusive {
|
|||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
|
||||||
|
struct default_bstree_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_bstree_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_bstree_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct bstree_defaults
|
struct bstree_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_bstree_hook proto_value_traits;
|
typedef default_bstree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/detail/assert.hpp>
|
#include <boost/intrusive/detail/assert.hpp>
|
||||||
|
#include <boost/intrusive/detail/node_holder.hpp>
|
||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
|
218
include/boost/intrusive/detail/get_value_traits.hpp
Normal file
218
include/boost/intrusive/detail/get_value_traits.hpp
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (C) Copyright Ion Gaztanaga 2014-2014
|
||||||
|
//
|
||||||
|
// 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_DETAIL_GET_VALUE_TRAITS_HPP
|
||||||
|
#define BOOST_INTRUSIVE_DETAIL_GET_VALUE_TRAITS_HPP
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/intrusive/detail/config_begin.hpp>
|
||||||
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
|
#include <boost/intrusive/detail/hook_traits.hpp>
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
namespace intrusive {
|
||||||
|
|
||||||
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||||
|
|
||||||
|
template<class SupposedValueTraits>
|
||||||
|
struct is_default_hook_tag
|
||||||
|
{ static const bool value = false; };
|
||||||
|
|
||||||
|
namespace detail{
|
||||||
|
|
||||||
|
template <class T, class BaseHook>
|
||||||
|
struct concrete_hook_base_value_traits
|
||||||
|
{
|
||||||
|
typedef typename BaseHook::hooktags tags;
|
||||||
|
typedef bhtraits
|
||||||
|
< T
|
||||||
|
, typename tags::node_traits
|
||||||
|
, tags::link_mode
|
||||||
|
, typename tags::tag
|
||||||
|
, tags::type> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class BaseHook>
|
||||||
|
struct concrete_hook_base_value_traits<void, BaseHook>
|
||||||
|
{
|
||||||
|
typedef typename BaseHook::hooktags type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T, class AnyToSomeHook_ProtoValueTraits>
|
||||||
|
struct any_hook_base_value_traits
|
||||||
|
{
|
||||||
|
//AnyToSomeHook value_traits derive from a generic_hook
|
||||||
|
//The generic_hook is configured with any_node_traits
|
||||||
|
//and AnyToSomeHook::value_traits with the correct
|
||||||
|
//node traits for the container, so use node_traits
|
||||||
|
//from AnyToSomeHook_ProtoValueTraits and the rest of
|
||||||
|
//elements from the hooktags member of the generic_hook
|
||||||
|
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::basic_hook_t basic_hook_t;
|
||||||
|
typedef typename pointer_rebind
|
||||||
|
< typename basic_hook_t::hooktags::node_traits::node_ptr
|
||||||
|
, void>::type void_pointer;
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::template
|
||||||
|
node_traits_from_voidptr<void_pointer>::type node_traits;
|
||||||
|
|
||||||
|
typedef bhtraits
|
||||||
|
< T
|
||||||
|
, node_traits
|
||||||
|
, basic_hook_t::hooktags::link_mode
|
||||||
|
, typename basic_hook_t::hooktags::tag
|
||||||
|
, basic_hook_t::hooktags::type
|
||||||
|
> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class AnyToSomeHook_ProtoValueTraits>
|
||||||
|
struct any_hook_base_value_traits<void, AnyToSomeHook_ProtoValueTraits>
|
||||||
|
{
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::basic_hook_t basic_hook_t;
|
||||||
|
typedef typename pointer_rebind
|
||||||
|
< typename basic_hook_t::hooktags::node_traits::node_ptr
|
||||||
|
, void>::type void_pointer;
|
||||||
|
|
||||||
|
struct type
|
||||||
|
{
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::template
|
||||||
|
node_traits_from_voidptr<void_pointer>::type node_traits;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class MemberHook>
|
||||||
|
struct get_member_value_traits
|
||||||
|
{
|
||||||
|
typedef typename MemberHook::member_value_traits type;
|
||||||
|
};
|
||||||
|
|
||||||
|
BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(internal_any_hook, is_any_hook)
|
||||||
|
BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(internal_base_hook, hooktags::is_base_hook)
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct internal_member_value_traits
|
||||||
|
{
|
||||||
|
template <class U> static one test(...);
|
||||||
|
template <class U> static two test(typename U::member_value_traits* = 0);
|
||||||
|
static const bool value = sizeof(test<T>(0)) == sizeof(two);
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class SupposedValueTraits, class T, bool = is_default_hook_tag<SupposedValueTraits>::value>
|
||||||
|
struct supposed_value_traits;
|
||||||
|
|
||||||
|
template<class T, class BaseHook, bool = internal_any_hook_bool_is_true<BaseHook>::value>
|
||||||
|
struct get_base_value_traits;
|
||||||
|
|
||||||
|
template<class SupposedValueTraits, class T, bool = internal_base_hook_bool_is_true<SupposedValueTraits>::value>
|
||||||
|
struct supposed_base_value_traits;
|
||||||
|
|
||||||
|
template<class SupposedValueTraits, bool = internal_member_value_traits<SupposedValueTraits>::value>
|
||||||
|
struct supposed_member_value_traits;
|
||||||
|
|
||||||
|
template<class SupposedValueTraits, bool = internal_any_hook_bool_is_true<SupposedValueTraits>::value>
|
||||||
|
struct any_or_concrete_value_traits;
|
||||||
|
|
||||||
|
//Base any hook
|
||||||
|
template<class T, class BaseHook>
|
||||||
|
struct get_base_value_traits<T, BaseHook, true>
|
||||||
|
: any_hook_base_value_traits<T, BaseHook>
|
||||||
|
{};
|
||||||
|
|
||||||
|
//Non-any base hook
|
||||||
|
template<class T, class BaseHook>
|
||||||
|
struct get_base_value_traits<T, BaseHook, false>
|
||||||
|
: concrete_hook_base_value_traits<T, BaseHook>
|
||||||
|
{};
|
||||||
|
|
||||||
|
//...It's a default hook
|
||||||
|
template<class SupposedValueTraits, class T>
|
||||||
|
struct supposed_value_traits<SupposedValueTraits, T, true>
|
||||||
|
{ typedef typename SupposedValueTraits::template apply<T>::type type; };
|
||||||
|
|
||||||
|
//...Not a default hook
|
||||||
|
template<class SupposedValueTraits, class T>
|
||||||
|
struct supposed_value_traits<SupposedValueTraits, T, false>
|
||||||
|
{ typedef SupposedValueTraits type; };
|
||||||
|
|
||||||
|
//...It's a base hook
|
||||||
|
template<class BaseHook, class T>
|
||||||
|
struct supposed_base_value_traits<BaseHook, T, true>
|
||||||
|
: get_base_value_traits<T, BaseHook>
|
||||||
|
{};
|
||||||
|
|
||||||
|
//...Not a base hook, try if it's a member or value_traits
|
||||||
|
template<class SupposedValueTraits, class T>
|
||||||
|
struct supposed_base_value_traits<SupposedValueTraits, T, false>
|
||||||
|
: supposed_member_value_traits<SupposedValueTraits>
|
||||||
|
{};
|
||||||
|
|
||||||
|
//...It's a member hook
|
||||||
|
template<class MemberHook>
|
||||||
|
struct supposed_member_value_traits<MemberHook, true>
|
||||||
|
: get_member_value_traits<MemberHook>
|
||||||
|
{};
|
||||||
|
|
||||||
|
//...Not a member hook
|
||||||
|
template<class SupposedValueTraits>
|
||||||
|
struct supposed_member_value_traits<SupposedValueTraits, false>
|
||||||
|
: any_or_concrete_value_traits<SupposedValueTraits>
|
||||||
|
{};
|
||||||
|
|
||||||
|
template<class AnyToSomeHook_ProtoValueTraits>
|
||||||
|
struct any_or_concrete_value_traits<AnyToSomeHook_ProtoValueTraits, true>
|
||||||
|
{
|
||||||
|
//A hook node (non-base, e.g.: member or other value traits
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::basic_hook_t basic_hook_t;
|
||||||
|
typedef typename pointer_rebind
|
||||||
|
<typename basic_hook_t::node_ptr, void>::type void_pointer;
|
||||||
|
typedef typename AnyToSomeHook_ProtoValueTraits::template
|
||||||
|
node_traits_from_voidptr<void_pointer>::type any_node_traits;
|
||||||
|
|
||||||
|
struct type : basic_hook_t
|
||||||
|
{
|
||||||
|
typedef any_node_traits node_traits;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class SupposedValueTraits>
|
||||||
|
struct any_or_concrete_value_traits<SupposedValueTraits, false>
|
||||||
|
{
|
||||||
|
typedef SupposedValueTraits type;
|
||||||
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// get_value_traits / get_node_traits
|
||||||
|
////////////////////////////////////////
|
||||||
|
|
||||||
|
template<class T, class SupposedValueTraits>
|
||||||
|
struct get_value_traits
|
||||||
|
: supposed_base_value_traits<typename supposed_value_traits<SupposedValueTraits, T>::type, T>
|
||||||
|
{};
|
||||||
|
|
||||||
|
template<class SupposedValueTraits>
|
||||||
|
struct get_node_traits
|
||||||
|
{
|
||||||
|
typedef typename get_value_traits<void, SupposedValueTraits>::type::node_traits type;
|
||||||
|
};
|
||||||
|
|
||||||
|
} //namespace detail{
|
||||||
|
|
||||||
|
#endif //BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||||
|
|
||||||
|
} //namespace intrusive {
|
||||||
|
} //namespace boost {
|
||||||
|
|
||||||
|
#include <boost/intrusive/detail/config_end.hpp>
|
||||||
|
|
||||||
|
#endif //#ifndef BOOST_INTRUSIVE_DETAIL_GET_VALUE_TRAITS_HPP
|
@@ -83,62 +83,6 @@ struct bhtraits
|
|||||||
typedef NodeTraits node_traits;
|
typedef NodeTraits node_traits;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
template<class T, class NodePtr, typename pointer_traits<NodePtr>::element_type T::* P>
|
|
||||||
struct mhtraits_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef typename pointer_traits<NodePtr>::element_type node;
|
|
||||||
typedef T value_type;
|
|
||||||
typedef NodePtr node_ptr;
|
|
||||||
typedef typename pointer_traits<node_ptr>::
|
|
||||||
template rebind_pointer<const node>::type const_node_ptr;
|
|
||||||
typedef typename pointer_traits<node_ptr>::
|
|
||||||
template rebind_pointer<T>::type pointer;
|
|
||||||
typedef typename pointer_traits<node_ptr>::
|
|
||||||
template rebind_pointer<const T>::type const_pointer;
|
|
||||||
typedef T & reference;
|
|
||||||
typedef const T & const_reference;
|
|
||||||
typedef node& node_reference;
|
|
||||||
typedef const node & const_node_reference;
|
|
||||||
|
|
||||||
static node_ptr to_node_ptr(reference value)
|
|
||||||
{
|
|
||||||
return pointer_traits<node_ptr>::pointer_to
|
|
||||||
(static_cast<node_reference>(value.*P));
|
|
||||||
}
|
|
||||||
|
|
||||||
static const_node_ptr to_node_ptr(const_reference value)
|
|
||||||
{
|
|
||||||
return pointer_traits<const_node_ptr>::pointer_to
|
|
||||||
(static_cast<const_node_reference>(value.*P));
|
|
||||||
}
|
|
||||||
|
|
||||||
static pointer to_value_ptr(const node_ptr & n)
|
|
||||||
{
|
|
||||||
return pointer_traits<pointer>::pointer_to
|
|
||||||
(*detail::parent_from_member<T, node>
|
|
||||||
(boost::intrusive::detail::to_raw_pointer(n), P));
|
|
||||||
}
|
|
||||||
|
|
||||||
static const_pointer to_value_ptr(const const_node_ptr & n)
|
|
||||||
{
|
|
||||||
return pointer_traits<const_pointer>::pointer_to
|
|
||||||
(*detail::parent_from_member<T, node>
|
|
||||||
(boost::intrusive::detail::to_raw_pointer(n), P));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
template<class T, class NodeTraits, typename NodeTraits::node T::* P, link_mode_type LinkMode>
|
|
||||||
struct mhtraits
|
|
||||||
: public mhtraits_base<T, typename NodeTraits::node_ptr, P>
|
|
||||||
{
|
|
||||||
static const link_mode_type link_mode = LinkMode;
|
|
||||||
typedef NodeTraits node_traits;
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
template<class T, class Hook, Hook T::* P>
|
template<class T, class Hook, Hook T::* P>
|
||||||
struct mhtraits
|
struct mhtraits
|
||||||
|
@@ -463,7 +463,7 @@ template<class ValueTraitsOrHookOption>
|
|||||||
struct unordered_bucket
|
struct unordered_bucket
|
||||||
: public detail::unordered_bucket_impl
|
: public detail::unordered_bucket_impl
|
||||||
<typename ValueTraitsOrHookOption::
|
<typename ValueTraitsOrHookOption::
|
||||||
template pack<none>::proto_value_traits
|
template pack<empty>::proto_value_traits
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
@@ -472,10 +472,10 @@ struct unordered_bucket
|
|||||||
//!a hash container.
|
//!a hash container.
|
||||||
template<class ValueTraitsOrHookOption>
|
template<class ValueTraitsOrHookOption>
|
||||||
struct unordered_bucket_ptr
|
struct unordered_bucket_ptr
|
||||||
: public detail::unordered_bucket_ptr_impl
|
: public detail::unordered_bucket_ptr_impl
|
||||||
<typename ValueTraitsOrHookOption::
|
<typename ValueTraitsOrHookOption::
|
||||||
template pack<none>::proto_value_traits
|
template pack<empty>::proto_value_traits
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
//!This metafunction will obtain the type of the default bucket traits
|
//!This metafunction will obtain the type of the default bucket traits
|
||||||
@@ -486,7 +486,7 @@ template<class ValueTraitsOrHookOption>
|
|||||||
struct unordered_default_bucket_traits
|
struct unordered_default_bucket_traits
|
||||||
{
|
{
|
||||||
typedef typename ValueTraitsOrHookOption::
|
typedef typename ValueTraitsOrHookOption::
|
||||||
template pack<none>::proto_value_traits supposed_value_traits;
|
template pack<empty>::proto_value_traits supposed_value_traits;
|
||||||
typedef typename detail::
|
typedef typename detail::
|
||||||
get_slist_impl_from_supposed_value_traits
|
get_slist_impl_from_supposed_value_traits
|
||||||
<supposed_value_traits>::type slist_impl;
|
<supposed_value_traits>::type slist_impl;
|
||||||
@@ -497,9 +497,17 @@ struct unordered_default_bucket_traits
|
|||||||
|
|
||||||
struct default_bucket_traits;
|
struct default_bucket_traits;
|
||||||
|
|
||||||
|
//hashtable default hook traits
|
||||||
|
struct default_hashtable_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_hashtable_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_hashtable_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct hashtable_defaults
|
struct hashtable_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_hashtable_hook proto_value_traits;
|
typedef default_hashtable_hook_applier proto_value_traits;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void equal;
|
typedef void equal;
|
||||||
typedef void hash;
|
typedef void hash;
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/detail/is_stateful_value_traits.hpp>
|
#include <boost/intrusive/detail/is_stateful_value_traits.hpp>
|
||||||
#include <boost/intrusive/detail/default_header_holder.hpp>
|
#include <boost/intrusive/detail/default_header_holder.hpp>
|
||||||
#include <boost/intrusive/detail/reverse_iterator.hpp>
|
#include <boost/intrusive/detail/reverse_iterator.hpp>
|
||||||
@@ -51,9 +51,16 @@ namespace intrusive {
|
|||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
|
||||||
|
struct default_list_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_list_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_list_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct list_defaults
|
struct list_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_list_hook proto_value_traits;
|
typedef default_list_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void header_holder_type;
|
typedef void header_holder_type;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// (C) Copyright Ion Gaztanaga 2007-2013
|
// (C) Copyright Ion Gaztanaga 2007-2014
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@@ -22,177 +22,29 @@
|
|||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/pack_options.hpp>
|
#include <boost/intrusive/pack_options.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/detail/hook_traits.hpp>
|
|
||||||
#include <boost/static_assert.hpp>
|
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace intrusive {
|
namespace intrusive {
|
||||||
|
|
||||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||||
|
|
||||||
|
struct empty
|
||||||
|
{};
|
||||||
|
|
||||||
|
template<class Functor>
|
||||||
|
struct fhtraits;
|
||||||
|
|
||||||
|
template<class T, class Hook, Hook T::* P>
|
||||||
|
struct mhtraits;
|
||||||
|
|
||||||
//typedef void default_tag;
|
//typedef void default_tag;
|
||||||
struct default_tag;
|
struct default_tag;
|
||||||
struct member_tag;
|
struct member_tag;
|
||||||
|
|
||||||
namespace detail{
|
|
||||||
|
|
||||||
struct default_hook_tag{};
|
|
||||||
|
|
||||||
#define BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER) \
|
|
||||||
struct BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER : public default_hook_tag\
|
|
||||||
{\
|
|
||||||
template <class T>\
|
|
||||||
struct apply\
|
|
||||||
{ typedef typename T::BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER type; };\
|
|
||||||
}\
|
|
||||||
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_list_hook);
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_slist_hook);
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_rbtree_hook);
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_hashtable_hook);
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_avltree_hook);
|
|
||||||
BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION(default_bstree_hook);
|
|
||||||
|
|
||||||
#undef BOOST_INTRUSIVE_DEFAULT_HOOK_MARKER_DEFINITION
|
|
||||||
|
|
||||||
template <class T, class BaseHook>
|
|
||||||
struct concrete_hook_base_value_traits
|
|
||||||
{
|
|
||||||
typedef typename BaseHook::hooktags tags;
|
|
||||||
typedef bhtraits
|
|
||||||
< T
|
|
||||||
, typename tags::node_traits
|
|
||||||
, tags::link_mode
|
|
||||||
, typename tags::tag
|
|
||||||
, tags::type> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class BaseHook>
|
|
||||||
struct concrete_hook_base_node_traits
|
|
||||||
{ typedef typename BaseHook::hooktags::node_traits type; };
|
|
||||||
|
|
||||||
template <class T, class AnyToSomeHook_ProtoValueTraits>
|
|
||||||
struct any_hook_base_value_traits
|
|
||||||
{
|
|
||||||
//AnyToSomeHook value_traits derive from a generic_hook
|
|
||||||
//The generic_hook is configured with any_node_traits
|
|
||||||
//and AnyToSomeHook::value_traits with the correct
|
|
||||||
//node traits for the container, so use node_traits
|
|
||||||
//from AnyToSomeHook_ProtoValueTraits and the rest of
|
|
||||||
//elements from the hooktags member of the generic_hook
|
|
||||||
typedef AnyToSomeHook_ProtoValueTraits proto_value_traits;
|
|
||||||
typedef bhtraits
|
|
||||||
< T
|
|
||||||
, typename proto_value_traits::node_traits
|
|
||||||
, proto_value_traits::hooktags::link_mode
|
|
||||||
, typename proto_value_traits::hooktags::tag
|
|
||||||
, proto_value_traits::hooktags::type
|
|
||||||
> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class BaseHook>
|
|
||||||
struct any_hook_base_node_traits
|
|
||||||
{ typedef typename BaseHook::node_traits type; };
|
|
||||||
|
|
||||||
|
|
||||||
BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(internal_any_hook, is_any_hook)
|
|
||||||
|
|
||||||
template<class T, class BaseHook>
|
|
||||||
struct get_base_value_traits
|
|
||||||
{
|
|
||||||
typedef typename eval_if_c
|
|
||||||
< internal_any_hook_bool_is_true<BaseHook>::value
|
|
||||||
, any_hook_base_value_traits<T, BaseHook>
|
|
||||||
, concrete_hook_base_value_traits<T, BaseHook>
|
|
||||||
>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class BaseHook>
|
|
||||||
struct get_base_node_traits
|
|
||||||
{
|
|
||||||
typedef typename eval_if_c
|
|
||||||
< internal_any_hook_bool_is_true<BaseHook>::value
|
|
||||||
, any_hook_base_node_traits<BaseHook>
|
|
||||||
, concrete_hook_base_node_traits<BaseHook>
|
|
||||||
>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T, class MemberHook>
|
|
||||||
struct get_member_value_traits
|
|
||||||
{
|
|
||||||
typedef typename MemberHook::member_value_traits type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class MemberHook>
|
|
||||||
struct get_member_node_traits
|
|
||||||
{
|
|
||||||
typedef typename MemberHook::member_value_traits::node_traits type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
struct internal_member_value_traits
|
|
||||||
{
|
|
||||||
template <class U> static one test(...);
|
|
||||||
template <class U> static two test(typename U::member_value_traits* = 0);
|
|
||||||
static const bool value = sizeof(test<T>(0)) == sizeof(two);
|
|
||||||
};
|
|
||||||
|
|
||||||
BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(internal_base_hook, hooktags::is_base_hook)
|
|
||||||
|
|
||||||
template<class T, class SupposedValueTraits>
|
|
||||||
struct get_value_traits
|
|
||||||
{
|
|
||||||
typedef typename eval_if_c
|
|
||||||
<is_convertible<SupposedValueTraits*, default_hook_tag*>::value
|
|
||||||
,apply<SupposedValueTraits, T>
|
|
||||||
,identity<SupposedValueTraits>
|
|
||||||
>::type supposed_value_traits;
|
|
||||||
|
|
||||||
//...if it's a default hook
|
|
||||||
typedef typename eval_if_c
|
|
||||||
< internal_base_hook_bool_is_true<supposed_value_traits>::value
|
|
||||||
//...get it's internal value traits using
|
|
||||||
//the provided T value type.
|
|
||||||
, get_base_value_traits<T, supposed_value_traits>
|
|
||||||
//...else use its internal value traits tag
|
|
||||||
//(member hooks and custom value traits are in this group)
|
|
||||||
, eval_if_c
|
|
||||||
< internal_member_value_traits<supposed_value_traits>::value
|
|
||||||
, get_member_value_traits<T, supposed_value_traits>
|
|
||||||
, identity<supposed_value_traits>
|
|
||||||
>
|
|
||||||
>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class ValueTraits>
|
|
||||||
struct get_explicit_node_traits
|
|
||||||
{
|
|
||||||
typedef typename ValueTraits::node_traits type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class SupposedValueTraits>
|
template<class SupposedValueTraits>
|
||||||
struct get_node_traits
|
struct is_default_hook_tag;
|
||||||
{
|
|
||||||
typedef SupposedValueTraits supposed_value_traits;
|
|
||||||
//...if it's a base hook
|
|
||||||
typedef typename eval_if_c
|
|
||||||
< internal_base_hook_bool_is_true<supposed_value_traits>::value
|
|
||||||
//...get it's internal value traits using
|
|
||||||
//the provided T value type.
|
|
||||||
, get_base_node_traits<supposed_value_traits>
|
|
||||||
//...else use its internal value traits tag
|
|
||||||
//(member hooks and custom value traits are in this group)
|
|
||||||
, eval_if_c
|
|
||||||
< internal_member_value_traits<supposed_value_traits>::value
|
|
||||||
, get_member_node_traits<supposed_value_traits>
|
|
||||||
, get_explicit_node_traits<supposed_value_traits>
|
|
||||||
>
|
|
||||||
>::type type;
|
|
||||||
};
|
|
||||||
|
|
||||||
} //namespace detail{
|
#endif //#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||||
|
|
||||||
#endif //BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
|
||||||
|
|
||||||
//!This option setter specifies if the intrusive
|
//!This option setter specifies if the intrusive
|
||||||
//!container stores its size as a member to
|
//!container stores its size as a member to
|
||||||
@@ -375,13 +227,6 @@ BOOST_INTRUSIVE_OPTION_CONSTANT(incremental, bool, Enabled, incremental)
|
|||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
|
||||||
struct none
|
|
||||||
{
|
|
||||||
template<class Base>
|
|
||||||
struct pack : Base
|
|
||||||
{};
|
|
||||||
};
|
|
||||||
|
|
||||||
struct hook_defaults
|
struct hook_defaults
|
||||||
{
|
{
|
||||||
typedef void* void_pointer;
|
typedef void* void_pointer;
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
#include <boost/intrusive/detail/tree_node.hpp>
|
#include <boost/intrusive/detail/tree_node.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/rbtree_algorithms.hpp>
|
#include <boost/intrusive/rbtree_algorithms.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
|
|
||||||
@@ -40,9 +40,16 @@ namespace intrusive {
|
|||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
|
||||||
|
struct default_rbtree_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_rbtree_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_rbtree_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct rbtree_defaults
|
struct rbtree_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_rbtree_hook proto_value_traits;
|
typedef default_rbtree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/detail/math.hpp>
|
#include <boost/intrusive/detail/math.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/sgtree_algorithms.hpp>
|
#include <boost/intrusive/sgtree_algorithms.hpp>
|
||||||
#include <boost/intrusive/detail/key_nodeptr_comp.hpp>
|
#include <boost/intrusive/detail/key_nodeptr_comp.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
@@ -195,7 +195,7 @@ struct alpha_holder<false, SizeType>
|
|||||||
|
|
||||||
struct sgtree_defaults
|
struct sgtree_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_bstree_hook proto_value_traits;
|
typedef default_bstree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
#include <boost/intrusive/linear_slist_algorithms.hpp>
|
#include <boost/intrusive/linear_slist_algorithms.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/detail/is_stateful_value_traits.hpp>
|
#include <boost/intrusive/detail/is_stateful_value_traits.hpp>
|
||||||
#include <boost/intrusive/detail/default_header_holder.hpp>
|
#include <boost/intrusive/detail/default_header_holder.hpp>
|
||||||
#include <boost/intrusive/detail/uncast.hpp>
|
#include <boost/intrusive/detail/uncast.hpp>
|
||||||
@@ -66,9 +66,16 @@ struct header_holder_plus_last<HeaderHolder, NodePtr, false>
|
|||||||
HeaderHolder header_holder_;
|
HeaderHolder header_holder_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct default_slist_hook_applier
|
||||||
|
{ template <class T> struct apply{ typedef typename T::default_slist_hook type; }; };
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_default_hook_tag<default_slist_hook_applier>
|
||||||
|
{ static const bool value = true; };
|
||||||
|
|
||||||
struct slist_defaults
|
struct slist_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_slist_hook proto_value_traits;
|
typedef default_slist_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
static const bool linear = false;
|
static const bool linear = false;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/detail/function_detector.hpp>
|
#include <boost/intrusive/detail/function_detector.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/splaytree_algorithms.hpp>
|
#include <boost/intrusive/splaytree_algorithms.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
#include <boost/intrusive/detail/key_nodeptr_comp.hpp>
|
#include <boost/intrusive/detail/key_nodeptr_comp.hpp>
|
||||||
@@ -41,7 +41,7 @@ namespace intrusive {
|
|||||||
|
|
||||||
struct splaytree_defaults
|
struct splaytree_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_bstree_hook proto_value_traits;
|
typedef default_bstree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
#include <boost/intrusive/detail/tree_node.hpp>
|
#include <boost/intrusive/detail/tree_node.hpp>
|
||||||
#include <boost/intrusive/detail/ebo_functor_holder.hpp>
|
#include <boost/intrusive/detail/ebo_functor_holder.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include <boost/intrusive/options.hpp>
|
#include <boost/intrusive/detail/get_value_traits.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/treap_algorithms.hpp>
|
#include <boost/intrusive/treap_algorithms.hpp>
|
||||||
#include <boost/intrusive/link_mode.hpp>
|
#include <boost/intrusive/link_mode.hpp>
|
||||||
@@ -46,7 +46,7 @@ namespace intrusive {
|
|||||||
|
|
||||||
struct treap_defaults
|
struct treap_defaults
|
||||||
{
|
{
|
||||||
typedef detail::default_bstree_hook proto_value_traits;
|
typedef default_bstree_hook_applier proto_value_traits;
|
||||||
static const bool constant_time_size = true;
|
static const bool constant_time_size = true;
|
||||||
typedef std::size_t size_type;
|
typedef std::size_t size_type;
|
||||||
typedef void compare;
|
typedef void compare;
|
||||||
|
@@ -271,6 +271,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\..\boost\intrusive\detail\generic_hook.hpp">
|
RelativePath="..\..\..\..\..\boost\intrusive\detail\generic_hook.hpp">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\..\..\boost\intrusive\detail\get_value_traits.hpp">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\..\boost\intrusive\detail\has_member_function_callable_with.hpp">
|
RelativePath="..\..\..\..\..\boost\intrusive\detail\has_member_function_callable_with.hpp">
|
||||||
</File>
|
</File>
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/avl_set.hpp>
|
#include <boost/intrusive/avl_set.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -123,8 +122,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -159,8 +157,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -176,8 +173,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -249,5 +245,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/avl_set.hpp>
|
#include <boost/intrusive/avl_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -123,8 +122,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -159,8 +157,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -176,8 +173,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -250,5 +246,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|
||||||
@@ -215,5 +214,3 @@ int main()
|
|||||||
test_sizes(boolean< pow2_and_equal_sizes<std::size_t, void*>::value >(), sizeof(std::size_t));
|
test_sizes(boolean< pow2_and_equal_sizes<std::size_t, void*>::value >(), sizeof(std::size_t));
|
||||||
return ::boost::report_errors();
|
return ::boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include <boost/intrusive/unordered_set.hpp>
|
#include <boost/intrusive/unordered_set.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/functional/hash.hpp>
|
#include <boost/functional/hash.hpp>
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
using namespace boost::intrusive;
|
using namespace boost::intrusive;
|
||||||
@@ -55,16 +56,19 @@ struct uset_value_traits
|
|||||||
//Base
|
//Base
|
||||||
typedef base_hook< unordered_set_base_hook<> > BaseHook;
|
typedef base_hook< unordered_set_base_hook<> > BaseHook;
|
||||||
typedef unordered_bucket<BaseHook>::type BaseBucketType;
|
typedef unordered_bucket<BaseHook>::type BaseBucketType;
|
||||||
|
typedef unordered_bucket_ptr<BaseHook>::type BaseBucketPtrType;
|
||||||
typedef unordered_set<MyClass, BaseHook> BaseUset;
|
typedef unordered_set<MyClass, BaseHook> BaseUset;
|
||||||
//Member
|
//Member
|
||||||
typedef member_hook
|
typedef member_hook
|
||||||
< MyClass, unordered_set_member_hook<>
|
< MyClass, unordered_set_member_hook<>
|
||||||
, &MyClass::member_hook_ > MemberHook;
|
, &MyClass::member_hook_ > MemberHook;
|
||||||
typedef unordered_bucket<MemberHook>::type MemberBucketType;
|
typedef unordered_bucket<MemberHook>::type MemberBucketType;
|
||||||
|
typedef unordered_bucket_ptr<MemberHook>::type MemberBucketPtrType;
|
||||||
typedef unordered_set<MyClass, MemberHook> MemberUset;
|
typedef unordered_set<MyClass, MemberHook> MemberUset;
|
||||||
//Explicit
|
//Explicit
|
||||||
typedef value_traits< uset_value_traits > Traits;
|
typedef value_traits< uset_value_traits > Traits;
|
||||||
typedef unordered_bucket<Traits>::type TraitsBucketType;
|
typedef unordered_bucket<Traits>::type TraitsBucketType;
|
||||||
|
typedef unordered_bucket_ptr<Traits>::type TraitsBucketPtrType;
|
||||||
typedef unordered_set<MyClass, Traits> TraitsUset;
|
typedef unordered_set<MyClass, Traits> TraitsUset;
|
||||||
|
|
||||||
struct uset_bucket_traits
|
struct uset_bucket_traits
|
||||||
@@ -95,16 +99,14 @@ typedef unordered_set
|
|||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
if(!detail::is_same<BaseUset::bucket_type, BaseBucketType>::value)
|
BOOST_STATIC_ASSERT((detail::is_same<BaseUset::bucket_type, BaseBucketType>::value));
|
||||||
return 1;
|
BOOST_STATIC_ASSERT((detail::is_same<MemberUset::bucket_type, MemberBucketType>::value));
|
||||||
if(!detail::is_same<MemberUset::bucket_type, MemberBucketType>::value)
|
BOOST_STATIC_ASSERT((detail::is_same<TraitsUset::bucket_type, TraitsBucketType>::value));
|
||||||
return 1;
|
BOOST_STATIC_ASSERT((detail::is_same<BaseBucketType, MemberBucketType>::value));
|
||||||
if(!detail::is_same<TraitsUset::bucket_type, TraitsBucketType>::value)
|
BOOST_STATIC_ASSERT((detail::is_same<BaseBucketType, TraitsBucketType>::value));
|
||||||
return 1;
|
BOOST_STATIC_ASSERT((detail::is_same<BaseBucketPtrType, TraitsBucketPtrType>::value));
|
||||||
if(!detail::is_same<BaseBucketType, MemberBucketType>::value)
|
BOOST_STATIC_ASSERT((detail::is_same<BaseBucketPtrType, MemberBucketPtrType>::value));
|
||||||
return 1;
|
BOOST_STATIC_ASSERT((detail::is_same<BaseBucketPtrType, BaseBucketType*>::value));
|
||||||
if(!detail::is_same<BaseBucketType, TraitsBucketType>::value)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
typedef std::vector<MyClass>::iterator VectIt;
|
typedef std::vector<MyClass>::iterator VectIt;
|
||||||
typedef std::vector<MyClass>::reverse_iterator VectRit;
|
typedef std::vector<MyClass>::reverse_iterator VectRit;
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
/*
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// (C) Copyright Olaf Krzikalla 2004-2006.
|
// (C) Copyright Olaf Krzikalla 2004-2006.
|
||||||
@@ -10,7 +11,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/list.hpp>
|
#include <boost/intrusive/list.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -410,7 +410,6 @@ class test_main_template
|
|||||||
std::vector< value_type >
|
std::vector< value_type >
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
make_and_test_list < typename detail::get_member_value_traits <
|
make_and_test_list < typename detail::get_member_value_traits <
|
||||||
value_type,
|
|
||||||
member_hook< value_type, typename hooks<VoidPointer>::member_hook_type, &value_type::node_>
|
member_hook< value_type, typename hooks<VoidPointer>::member_hook_type, &value_type::node_>
|
||||||
>::type,
|
>::type,
|
||||||
ConstantTimeSize,
|
ConstantTimeSize,
|
||||||
@@ -452,7 +451,6 @@ class test_main_template< VoidPointer, false, Default_Holder >
|
|||||||
std::vector< value_type >
|
std::vector< value_type >
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
make_and_test_list < typename detail::get_member_value_traits <
|
make_and_test_list < typename detail::get_member_value_traits <
|
||||||
value_type,
|
|
||||||
member_hook< value_type, typename hooks<VoidPointer>::member_hook_type, &value_type::node_>
|
member_hook< value_type, typename hooks<VoidPointer>::member_hook_type, &value_type::node_>
|
||||||
>::type,
|
>::type,
|
||||||
false,
|
false,
|
||||||
@@ -475,7 +473,6 @@ class test_main_template< VoidPointer, false, Default_Holder >
|
|||||||
std::vector< value_type >
|
std::vector< value_type >
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
make_and_test_list < typename detail::get_member_value_traits <
|
make_and_test_list < typename detail::get_member_value_traits <
|
||||||
value_type,
|
|
||||||
member_hook< value_type, typename hooks<VoidPointer>::auto_member_hook_type, &value_type::auto_node_>
|
member_hook< value_type, typename hooks<VoidPointer>::auto_member_hook_type, &value_type::auto_node_>
|
||||||
>::type,
|
>::type,
|
||||||
false,
|
false,
|
||||||
@@ -544,3 +541,11 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <boost/intrusive/list_hook.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
@@ -19,6 +19,7 @@
|
|||||||
#include <boost/intrusive/treap_set.hpp>
|
#include <boost/intrusive/treap_set.hpp>
|
||||||
#include <boost/intrusive/detail/mpl.hpp>
|
#include <boost/intrusive/detail/mpl.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
#include "smart_ptr.hpp"
|
#include "smart_ptr.hpp"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@@ -147,79 +148,54 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Check defined types and implicitly defined types are equal
|
//Check defined types and implicitly defined types are equal
|
||||||
if(detail::is_same<make_list_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_list_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_list_base_hook<>::type
|
,make_list_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_slist_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_slist_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_slist_base_hook<>::type
|
,make_slist_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_set_base_hook<>::type
|
,make_set_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_unordered_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_unordered_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_unordered_set_base_hook<>::type
|
,make_unordered_set_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_avl_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_avl_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_avl_set_base_hook<>::type
|
,make_avl_set_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_bs_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
BOOST_STATIC_ASSERT((detail::is_same<make_bs_set_base_hook<void_pointer<void*>, link_mode<safe_link> >::type
|
||||||
,make_bs_set_base_hook<>::type
|
,make_bs_set_base_hook<>::type
|
||||||
>::value == false){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check defined types and implicitly defined types are unequal
|
//Check defined types and implicitly defined types are unequal
|
||||||
if(detail::is_same<make_list_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_list_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_list_base_hook<>::type
|
,make_list_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_slist_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_slist_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_slist_base_hook<>::type
|
,make_slist_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_set_base_hook<>::type
|
,make_set_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_unordered_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_unordered_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_unordered_set_base_hook<>::type
|
,make_unordered_set_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_avl_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_avl_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_avl_set_base_hook<>::type
|
,make_avl_set_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(detail::is_same<make_bs_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
BOOST_STATIC_ASSERT(!(detail::is_same<make_bs_set_base_hook<void_pointer<void*>, link_mode<normal_link> >::type
|
||||||
,make_bs_set_base_hook<>::type
|
,make_bs_set_base_hook<>::type
|
||||||
>::value == true){
|
>::value));
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/set.hpp>
|
#include <boost/intrusive/set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -123,8 +122,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -159,8 +157,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -176,8 +173,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -245,5 +241,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,8 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
|
|
||||||
#include <boost/intrusive/set.hpp>
|
#include <boost/intrusive/set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -124,8 +122,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -160,8 +157,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -177,8 +173,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -248,5 +243,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/sg_set.hpp>
|
#include <boost/intrusive/sg_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -214,8 +213,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -229,8 +227,7 @@ class test_main_template
|
|||||||
, GetContainerFixedAlpha_With_Holder< Default_Holder >::template GetContainerFixedAlpha
|
, GetContainerFixedAlpha_With_Holder< Default_Holder >::template GetContainerFixedAlpha
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/sg_set.hpp>
|
#include <boost/intrusive/sg_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -211,8 +210,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -227,8 +225,7 @@ class test_main_template
|
|||||||
, GetContainerFixedAlpha_With_Holder< Default_Holder >::template GetContainerFixedAlpha
|
, GetContainerFixedAlpha_With_Holder< Default_Holder >::template GetContainerFixedAlpha
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -301,4 +298,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -11,7 +11,6 @@
|
|||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/slist.hpp>
|
#include <boost/intrusive/slist.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -494,8 +493,7 @@ class test_main_template
|
|||||||
, std::vector< value_type >
|
, std::vector< value_type >
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -531,8 +529,7 @@ class test_main_template
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -556,8 +553,7 @@ class test_main_template
|
|||||||
, std::vector< value_type >
|
, std::vector< value_type >
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -582,8 +578,7 @@ class test_main_template
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -621,8 +616,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -646,8 +640,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -671,8 +664,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -697,8 +689,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -722,8 +713,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
make_and_test_slist < typename detail::get_member_value_traits
|
make_and_test_slist < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -790,4 +780,3 @@ int main(int, char* [])
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/splay_set.hpp>
|
#include <boost/intrusive/splay_set.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -154,8 +153,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -191,10 +189,9 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, &value_type::node_
|
||||||
, &value_type::node_
|
|
||||||
>
|
>
|
||||||
>::type
|
>::type
|
||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
@@ -208,11 +205,10 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, &value_type::auto_node_
|
||||||
, &value_type::auto_node_
|
>
|
||||||
>
|
|
||||||
>::type
|
>::type
|
||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/splay_set.hpp>
|
#include <boost/intrusive/splay_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -151,8 +150,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -187,8 +185,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -204,8 +201,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -274,4 +270,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,8 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/treap_set.hpp>
|
#include <boost/intrusive/treap_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -120,8 +118,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -156,8 +153,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -173,8 +169,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_multiset < typename detail::get_member_value_traits
|
test::test_generic_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -242,5 +237,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/treap_set.hpp>
|
#include <boost/intrusive/treap_set.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
#include "bptr_value.hpp"
|
#include "bptr_value.hpp"
|
||||||
@@ -135,8 +134,7 @@ class test_main_template
|
|||||||
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
, GetContainer_With_Holder< Default_Holder >::template GetContainer
|
||||||
>::test_all();
|
>::test_all();
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -171,8 +169,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -188,8 +185,7 @@ class test_main_template<VoidPointer, false, Default_Holder>
|
|||||||
>::test_all();
|
>::test_all();
|
||||||
|
|
||||||
test::test_generic_set < typename detail::get_member_value_traits
|
test::test_generic_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -258,5 +254,3 @@ int main()
|
|||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/unordered_set.hpp>
|
#include <boost/intrusive/unordered_set.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -780,8 +779,7 @@ class test_main_template
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
test_unordered_multiset < typename detail::get_member_value_traits
|
test_unordered_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -825,8 +823,7 @@ class test_main_template<VoidPointer, false, Incremental>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
test_unordered_multiset < typename detail::get_member_value_traits
|
test_unordered_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -846,8 +843,7 @@ class test_main_template<VoidPointer, false, Incremental>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
test_unordered_multiset < typename detail::get_member_value_traits
|
test_unordered_multiset < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -872,5 +868,3 @@ int main()
|
|||||||
test_main_template<smart_ptr<void>, true, false>()();
|
test_main_template<smart_ptr<void>, true, false>()();
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
// See http://www.boost.org/libs/intrusive for documentation.
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#include <boost/intrusive/detail/config_begin.hpp>
|
|
||||||
#include <boost/intrusive/unordered_set.hpp>
|
#include <boost/intrusive/unordered_set.hpp>
|
||||||
#include <boost/intrusive/pointer_traits.hpp>
|
#include <boost/intrusive/pointer_traits.hpp>
|
||||||
#include "itestvalue.hpp"
|
#include "itestvalue.hpp"
|
||||||
@@ -632,8 +631,7 @@ class test_main_template
|
|||||||
, incremental
|
, incremental
|
||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
test_unordered_set < typename detail::get_member_value_traits
|
test_unordered_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -678,8 +676,7 @@ class test_main_template<VoidPointer, false, incremental>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
test_unordered_set < typename detail::get_member_value_traits
|
test_unordered_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::member_hook_type
|
, typename hooks<VoidPointer>::member_hook_type
|
||||||
, &value_type::node_
|
, &value_type::node_
|
||||||
>
|
>
|
||||||
@@ -699,8 +696,7 @@ class test_main_template<VoidPointer, false, incremental>
|
|||||||
>::test_all(data);
|
>::test_all(data);
|
||||||
|
|
||||||
test_unordered_set < typename detail::get_member_value_traits
|
test_unordered_set < typename detail::get_member_value_traits
|
||||||
< value_type
|
< member_hook< value_type
|
||||||
, member_hook< value_type
|
|
||||||
, typename hooks<VoidPointer>::auto_member_hook_type
|
, typename hooks<VoidPointer>::auto_member_hook_type
|
||||||
, &value_type::auto_node_
|
, &value_type::auto_node_
|
||||||
>
|
>
|
||||||
@@ -725,4 +721,3 @@ int main()
|
|||||||
test_main_template<smart_ptr<void>, true, false>()();
|
test_main_template<smart_ptr<void>, true, false>()();
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
#include <boost/intrusive/detail/config_end.hpp>
|
|
||||||
|
Reference in New Issue
Block a user