forked from boostorg/intrusive
lib: extra template parameter propagated to impl bases, not used yet
This commit is contained in:
@@ -36,15 +36,15 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class avl_set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -414,12 +414,15 @@ struct make_avl_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef avl_set_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -507,15 +510,15 @@ class avl_set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class avl_multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, AvlTreeAlgorithms, Header_Holder> tree_type;
|
||||
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(avl_multiset_impl)
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -852,12 +855,15 @@ struct make_avl_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef avl_multiset_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -68,18 +68,19 @@ struct avltree_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class avltree_impl
|
||||
/// @cond
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, AvlTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, AvlTreeAlgorithms, Header_Holder>
|
||||
/// @endcond
|
||||
{
|
||||
public:
|
||||
typedef ValueTraits value_traits;
|
||||
/// @cond
|
||||
typedef bstree_impl< ValueTraits, VoidOrKeyComp, SizeType
|
||||
, ConstantTimeSize, AvlTreeAlgorithms> tree_type;
|
||||
, ConstantTimeSize, AvlTreeAlgorithms
|
||||
, Header_Holder> tree_type;
|
||||
typedef tree_type implementation_defined;
|
||||
/// @endcond
|
||||
|
||||
@@ -448,12 +449,15 @@ struct make_avltree
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef avltree_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -36,15 +36,15 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class bs_set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, BsTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, BsTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, BsTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, BsTreeAlgorithms, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(bs_set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -412,12 +412,15 @@ struct make_bs_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef bs_set_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -505,15 +508,15 @@ class bs_set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class bs_multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder> tree_type;
|
||||
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(bs_multiset_impl)
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -850,12 +853,15 @@ struct make_bs_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef bs_multiset_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -52,7 +52,7 @@ struct bstree_defaults
|
||||
typedef void header_holder_type;
|
||||
};
|
||||
|
||||
template<class ValueTraits, algo_types AlgoType>
|
||||
template<class ValueTraits, algo_types AlgoType, typename Header_Holder>
|
||||
struct bstbase3
|
||||
{
|
||||
typedef ValueTraits value_traits;
|
||||
@@ -198,15 +198,15 @@ struct bstbase3
|
||||
|
||||
};
|
||||
|
||||
template<class ValueTraits, class VoidOrKeyComp, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidOrKeyComp, algo_types AlgoType, typename Header_Holder>
|
||||
struct bstbase2
|
||||
//Put the (possibly empty) functor in the first position to get EBO in MSVC
|
||||
: public detail::ebo_functor_holder<typename get_less< VoidOrKeyComp
|
||||
, typename ValueTraits::value_type
|
||||
>::type>
|
||||
, public bstbase3<ValueTraits, AlgoType>
|
||||
, public bstbase3<ValueTraits, AlgoType, Header_Holder>
|
||||
{
|
||||
typedef bstbase3<ValueTraits, AlgoType> treeheader_t;
|
||||
typedef bstbase3<ValueTraits, AlgoType, Header_Holder> treeheader_t;
|
||||
typedef typename treeheader_t::value_traits value_traits;
|
||||
typedef typename treeheader_t::node_algorithms node_algorithms;
|
||||
typedef typename get_less
|
||||
@@ -444,12 +444,12 @@ struct bstbase2
|
||||
//Due to MSVC's EBO implementation, to save space and maintain the ABI, we must put the non-empty size member
|
||||
//in the first position, but if size is not going to be stored then we'll use an specialization
|
||||
//that doesn't inherit from size_holder
|
||||
template<class ValueTraits, class VoidOrKeyComp, bool ConstantTimeSize, class SizeType, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidOrKeyComp, bool ConstantTimeSize, class SizeType, algo_types AlgoType, typename Header_Holder>
|
||||
struct bstbase_hack
|
||||
: public detail::size_holder<ConstantTimeSize, SizeType>
|
||||
, public bstbase2 < ValueTraits, VoidOrKeyComp, AlgoType>
|
||||
, public bstbase2 < ValueTraits, VoidOrKeyComp, AlgoType, Header_Holder>
|
||||
{
|
||||
typedef bstbase2< ValueTraits, VoidOrKeyComp, AlgoType> base_type;
|
||||
typedef bstbase2< ValueTraits, VoidOrKeyComp, AlgoType, Header_Holder> base_type;
|
||||
typedef typename base_type::value_compare value_compare;
|
||||
typedef SizeType size_type;
|
||||
typedef typename base_type::node_traits node_traits;
|
||||
@@ -472,11 +472,11 @@ struct bstbase_hack
|
||||
};
|
||||
|
||||
//Specialization for ConstantTimeSize == false
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, algo_types AlgoType>
|
||||
struct bstbase_hack<ValueTraits, VoidOrKeyComp, false, SizeType, AlgoType>
|
||||
: public bstbase2 < ValueTraits, VoidOrKeyComp, AlgoType>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, algo_types AlgoType, typename Header_Holder>
|
||||
struct bstbase_hack<ValueTraits, VoidOrKeyComp, false, SizeType, AlgoType, Header_Holder>
|
||||
: public bstbase2 < ValueTraits, VoidOrKeyComp, AlgoType, Header_Holder>
|
||||
{
|
||||
typedef bstbase2< ValueTraits, VoidOrKeyComp, AlgoType> base_type;
|
||||
typedef bstbase2< ValueTraits, VoidOrKeyComp, AlgoType, Header_Holder> base_type;
|
||||
typedef typename base_type::value_compare value_compare;
|
||||
bstbase_hack(const value_compare & comp, const ValueTraits &vtraits)
|
||||
: base_type(comp, vtraits)
|
||||
@@ -493,15 +493,15 @@ struct bstbase_hack<ValueTraits, VoidOrKeyComp, false, SizeType, AlgoType>
|
||||
static size_traits s_size_traits;
|
||||
};
|
||||
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, algo_types AlgoType>
|
||||
detail::size_holder<true, SizeType> bstbase_hack<ValueTraits, VoidOrKeyComp, false, SizeType, AlgoType>::s_size_traits;
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, algo_types AlgoType, typename Header_Holder>
|
||||
detail::size_holder<true, SizeType> bstbase_hack<ValueTraits, VoidOrKeyComp, false, SizeType, AlgoType, Header_Holder>::s_size_traits;
|
||||
|
||||
//This class will
|
||||
template<class ValueTraits, class VoidOrKeyComp, bool ConstantTimeSize, class SizeType, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidOrKeyComp, bool ConstantTimeSize, class SizeType, algo_types AlgoType, typename Header_Holder>
|
||||
struct bstbase
|
||||
: public bstbase_hack< ValueTraits, VoidOrKeyComp, ConstantTimeSize, SizeType, AlgoType>
|
||||
: public bstbase_hack< ValueTraits, VoidOrKeyComp, ConstantTimeSize, SizeType, AlgoType, Header_Holder>
|
||||
{
|
||||
typedef bstbase_hack< ValueTraits, VoidOrKeyComp, ConstantTimeSize, SizeType, AlgoType> base_type;
|
||||
typedef bstbase_hack< ValueTraits, VoidOrKeyComp, ConstantTimeSize, SizeType, AlgoType, Header_Holder> base_type;
|
||||
typedef ValueTraits value_traits;
|
||||
typedef typename base_type::value_compare value_compare;
|
||||
typedef value_compare key_compare;
|
||||
@@ -553,14 +553,14 @@ struct bstbase
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
class bstree_impl
|
||||
: public bstbase<ValueTraits, VoidKeyComp, ConstantTimeSize, SizeType, AlgoType>
|
||||
: public bstbase<ValueTraits, VoidKeyComp, ConstantTimeSize, SizeType, AlgoType, Header_Holder>
|
||||
{
|
||||
public:
|
||||
/// @cond
|
||||
typedef bstbase<ValueTraits, VoidKeyComp, ConstantTimeSize, SizeType, AlgoType> data_type;
|
||||
typedef bstbase<ValueTraits, VoidKeyComp, ConstantTimeSize, SizeType, AlgoType, Header_Holder> data_type;
|
||||
typedef tree_iterator<ValueTraits, false> iterator_type;
|
||||
typedef tree_iterator<ValueTraits, true> const_iterator_type;
|
||||
/// @endcond
|
||||
@@ -1876,31 +1876,31 @@ class bstree_impl
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{
|
||||
typedef bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> tree_type;
|
||||
typedef bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> tree_type;
|
||||
typedef typename tree_type::const_iterator const_iterator;
|
||||
|
||||
if(tree_type::constant_time_size && x.size() != y.size()){
|
||||
@@ -1929,70 +1929,70 @@ bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator!=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x == y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ return y < x; }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(y < x); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const bstree_impl<T, Options...> &x, const bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, const bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x < y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType>
|
||||
template<class ValueTraits, class VoidKeyComp, class SizeType, bool ConstantTimeSize, algo_types AlgoType, typename Header_Holder>
|
||||
#endif
|
||||
inline void swap
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(bstree_impl<T, Options...> &x, bstree_impl<T, Options...> &y)
|
||||
#else
|
||||
( bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &x
|
||||
, bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType> &y)
|
||||
( bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &x
|
||||
, bstree_impl<ValueTraits, VoidKeyComp, SizeType, ConstantTimeSize, AlgoType, Header_Holder> &y)
|
||||
#endif
|
||||
{ x.swap(y); }
|
||||
|
||||
@@ -2019,6 +2019,8 @@ struct make_bstree
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef bstree_impl
|
||||
< value_traits
|
||||
@@ -2026,6 +2028,7 @@ struct make_bstree
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, BsTreeAlgorithms
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -60,7 +60,7 @@ struct list_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class list_impl
|
||||
{
|
||||
@@ -1268,29 +1268,29 @@ class list_impl
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{
|
||||
typedef list_impl<ValueTraits, SizeType, ConstantTimeSize> list_type;
|
||||
typedef list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> list_type;
|
||||
typedef typename list_type::const_iterator const_iterator;
|
||||
const bool C = list_type::constant_time_size;
|
||||
if(C && x.size() != y.size()){
|
||||
@@ -1320,65 +1320,65 @@ bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator!=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x == y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ return y < x; }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(y < x); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const list_impl<T, Options...> &x, const list_impl<T, Options...> &y)
|
||||
#else
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, const list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x < y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize>
|
||||
template <class ValueTraits, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
inline void swap
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(list_impl<T, Options...> &x, list_impl<T, Options...> &y)
|
||||
#else
|
||||
(list_impl<ValueTraits, SizeType, ConstantTimeSize> &x, list_impl<ValueTraits, SizeType, ConstantTimeSize> &y)
|
||||
(list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &x, list_impl<ValueTraits, SizeType, ConstantTimeSize, Header_Holder> &y)
|
||||
#endif
|
||||
{ x.swap(y); }
|
||||
|
||||
@@ -1403,12 +1403,15 @@ struct make_list
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef list_impl
|
||||
<
|
||||
value_traits,
|
||||
typename packed_options::size_type,
|
||||
packed_options::constant_time_size
|
||||
packed_options::constant_time_size,
|
||||
header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -66,18 +66,19 @@ struct rbtree_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class rbtree_impl
|
||||
/// @cond
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, RbTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder>
|
||||
/// @endcond
|
||||
{
|
||||
public:
|
||||
typedef ValueTraits value_traits;
|
||||
/// @cond
|
||||
typedef bstree_impl< ValueTraits, VoidOrKeyComp, SizeType
|
||||
, ConstantTimeSize, RbTreeAlgorithms> tree_type;
|
||||
, ConstantTimeSize, RbTreeAlgorithms
|
||||
, Header_Holder> tree_type;
|
||||
typedef tree_type implementation_defined;
|
||||
/// @endcond
|
||||
|
||||
@@ -444,12 +445,15 @@ struct make_rbtree
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef rbtree_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -38,15 +38,15 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -414,12 +414,15 @@ struct make_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef set_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -507,15 +510,15 @@ class set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms> tree_type;
|
||||
typedef bstree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, RbTreeAlgorithms, Header_Holder> tree_type;
|
||||
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(multiset_impl)
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -852,12 +855,15 @@ struct make_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef multiset_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -36,15 +36,15 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool FloatingPoint>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool FloatingPoint, typename Header_Holder>
|
||||
#endif
|
||||
class sg_set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint>
|
||||
: public sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint> tree_type;
|
||||
typedef sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(sg_set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -425,12 +425,15 @@ struct make_sg_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef sg_set_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::floating_point
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -518,15 +521,15 @@ class sg_set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool FloatingPoint>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool FloatingPoint, typename Header_Holder>
|
||||
#endif
|
||||
class sg_multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint>
|
||||
: public sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint> tree_type;
|
||||
typedef sgtree_impl<ValueTraits, Compare, SizeType, FloatingPoint, Header_Holder> tree_type;
|
||||
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(sg_multiset_impl)
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -876,12 +879,15 @@ struct make_sg_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef sg_multiset_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::floating_point
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -213,11 +213,11 @@ struct sgtree_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool FloatingPoint>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool FloatingPoint, typename Header_Holder>
|
||||
#endif
|
||||
class sgtree_impl
|
||||
/// @cond
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, true, SgTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, true, SgTreeAlgorithms, Header_Holder>
|
||||
, public detail::alpha_holder<FloatingPoint, SizeType>
|
||||
/// @endcond
|
||||
{
|
||||
@@ -225,7 +225,7 @@ class sgtree_impl
|
||||
typedef ValueTraits value_traits;
|
||||
/// @cond
|
||||
typedef bstree_impl< ValueTraits, VoidOrKeyComp, SizeType
|
||||
, true, SgTreeAlgorithms> tree_type;
|
||||
, true, SgTreeAlgorithms, Header_Holder> tree_type;
|
||||
typedef tree_type implementation_defined;
|
||||
|
||||
/// @endcond
|
||||
@@ -890,12 +890,15 @@ struct make_sgtree
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef sgtree_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::floating_point
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -96,7 +96,7 @@ struct slist_bool_flags
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
class slist_impl
|
||||
{
|
||||
@@ -1972,31 +1972,31 @@ class slist_impl
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{
|
||||
typedef slist_impl<ValueTraits, SizeType, BoolFlags> slist_type;
|
||||
typedef slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> slist_type;
|
||||
typedef typename slist_type::const_iterator const_iterator;
|
||||
const bool C = slist_type::constant_time_size;
|
||||
if(C && x.size() != y.size()){
|
||||
@@ -2026,70 +2026,70 @@ bool operator==
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator!=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x == y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ return y < x; }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator<=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(y < x); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline bool operator>=
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(const slist_impl<T, Options...> &x, const slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, const slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ return !(x < y); }
|
||||
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags>
|
||||
template<class ValueTraits, class SizeType, std::size_t BoolFlags, typename Header_Holder>
|
||||
#endif
|
||||
inline void swap
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
(slist_impl<T, Options...> &x, slist_impl<T, Options...> &y)
|
||||
#else
|
||||
( slist_impl<ValueTraits, SizeType, BoolFlags> &x
|
||||
, slist_impl<ValueTraits, SizeType, BoolFlags> &y)
|
||||
( slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &x
|
||||
, slist_impl<ValueTraits, SizeType, BoolFlags, Header_Holder> &y)
|
||||
#endif
|
||||
{ x.swap(y); }
|
||||
|
||||
@@ -2113,12 +2113,15 @@ struct make_slist
|
||||
>::type packed_options;
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
typedef slist_impl
|
||||
< value_traits
|
||||
, typename packed_options::size_type
|
||||
, (std::size_t(packed_options::linear)*slist_bool_flags::linear_pos)
|
||||
|(std::size_t(packed_options::constant_time_size)*slist_bool_flags::constant_time_size_pos)
|
||||
|(std::size_t(packed_options::cache_last)*slist_bool_flags::cache_last_pos)
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -36,15 +36,15 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class splay_set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize>
|
||||
: public splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize> tree_type;
|
||||
typedef splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(splay_set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -435,12 +435,15 @@ struct make_splay_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef splay_set_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -528,15 +531,15 @@ class splay_set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class Compare, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class splay_multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize>
|
||||
: public splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize> tree_type;
|
||||
typedef splaytree_impl<ValueTraits, Compare, SizeType, ConstantTimeSize, Header_Holder> tree_type;
|
||||
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(splay_multiset_impl)
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -889,12 +892,15 @@ struct make_splay_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef splay_multiset_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -65,18 +65,19 @@ struct splaytree_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class splaytree_impl
|
||||
/// @cond
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, SplayTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, SplayTreeAlgorithms, Header_Holder>
|
||||
/// @endcond
|
||||
{
|
||||
public:
|
||||
typedef ValueTraits value_traits;
|
||||
/// @cond
|
||||
typedef bstree_impl< ValueTraits, VoidOrKeyComp, SizeType
|
||||
, ConstantTimeSize, SplayTreeAlgorithms> tree_type;
|
||||
, ConstantTimeSize, SplayTreeAlgorithms
|
||||
, Header_Holder> tree_type;
|
||||
typedef tree_type implementation_defined;
|
||||
/// @endcond
|
||||
|
||||
@@ -531,12 +532,15 @@ struct make_splaytree
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef splaytree_impl
|
||||
< value_traits
|
||||
, typename packed_options::compare
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -69,16 +69,16 @@ struct treap_defaults
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class treap_impl
|
||||
/// @cond
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms>
|
||||
: public bstree_impl<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms, Header_Holder>
|
||||
, public detail::ebo_functor_holder
|
||||
< typename get_prio
|
||||
< VoidOrPrioComp
|
||||
, typename bstree_impl
|
||||
<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms>::value_type>::type
|
||||
<ValueTraits, VoidOrKeyComp, SizeType, ConstantTimeSize, BsTreeAlgorithms, Header_Holder>::value_type>::type
|
||||
>
|
||||
/// @endcond
|
||||
{
|
||||
@@ -86,7 +86,8 @@ class treap_impl
|
||||
typedef ValueTraits value_traits;
|
||||
/// @cond
|
||||
typedef bstree_impl< ValueTraits, VoidOrKeyComp, SizeType
|
||||
, ConstantTimeSize, BsTreeAlgorithms> tree_type;
|
||||
, ConstantTimeSize, BsTreeAlgorithms
|
||||
, Header_Holder> tree_type;
|
||||
typedef tree_type implementation_defined;
|
||||
typedef get_prio
|
||||
< VoidOrPrioComp
|
||||
@@ -1079,6 +1080,8 @@ struct make_treap
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef treap_impl
|
||||
< value_traits
|
||||
@@ -1086,6 +1089,7 @@ struct make_treap
|
||||
, typename packed_options::priority
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
@@ -36,16 +36,16 @@ namespace intrusive {
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class treap_set_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize>
|
||||
: public treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
public:
|
||||
typedef treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize> tree_type;
|
||||
typedef treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(treap_set_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -439,6 +439,8 @@ struct make_treap_set
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef treap_set_impl
|
||||
< value_traits
|
||||
@@ -446,6 +448,7 @@ struct make_treap_set
|
||||
, typename packed_options::priority
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
@@ -537,15 +540,15 @@ class treap_set
|
||||
#if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
||||
template<class T, class ...Options>
|
||||
#else
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize>
|
||||
template<class ValueTraits, class VoidOrKeyComp, class VoidOrPrioComp, class SizeType, bool ConstantTimeSize, typename Header_Holder>
|
||||
#endif
|
||||
class treap_multiset_impl
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
: public treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize>
|
||||
: public treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize, Header_Holder>
|
||||
#endif
|
||||
{
|
||||
/// @cond
|
||||
typedef treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize> tree_type;
|
||||
typedef treap_impl<ValueTraits, VoidOrKeyComp, VoidOrPrioComp, SizeType, ConstantTimeSize, Header_Holder> tree_type;
|
||||
BOOST_MOVABLE_BUT_NOT_COPYABLE(treap_multiset_impl)
|
||||
|
||||
typedef tree_type implementation_defined;
|
||||
@@ -906,6 +909,8 @@ struct make_treap_multiset
|
||||
|
||||
typedef typename detail::get_value_traits
|
||||
<T, typename packed_options::proto_value_traits>::type value_traits;
|
||||
typedef typename detail::get_header_holder_type
|
||||
< value_traits, typename packed_options::header_holder_type >::type header_holder_type;
|
||||
|
||||
typedef treap_multiset_impl
|
||||
< value_traits
|
||||
@@ -913,6 +918,7 @@ struct make_treap_multiset
|
||||
, typename packed_options::priority
|
||||
, typename packed_options::size_type
|
||||
, packed_options::constant_time_size
|
||||
, header_holder_type
|
||||
> implementation_defined;
|
||||
/// @endcond
|
||||
typedef implementation_defined type;
|
||||
|
Reference in New Issue
Block a user