forked from boostorg/intrusive
Add missing forceinlines
This commit is contained in:
@@ -40,23 +40,22 @@ template <class Slist>
|
||||
struct bucket_impl : public Slist
|
||||
{
|
||||
typedef Slist slist_type;
|
||||
bucket_impl()
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_impl()
|
||||
{}
|
||||
|
||||
bucket_impl(const bucket_impl &)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_impl(const bucket_impl &)
|
||||
{}
|
||||
|
||||
~bucket_impl()
|
||||
BOOST_INTRUSIVE_FORCEINLINE ~bucket_impl()
|
||||
{
|
||||
//This bucket is still being used!
|
||||
BOOST_INTRUSIVE_INVARIANT_ASSERT(Slist::empty());
|
||||
}
|
||||
|
||||
bucket_impl &operator=(const bucket_impl&)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_impl &operator=(const bucket_impl&)
|
||||
{
|
||||
//This bucket is still in use!
|
||||
BOOST_INTRUSIVE_INVARIANT_ASSERT(Slist::empty());
|
||||
//Slist::clear();
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
@@ -77,25 +76,25 @@ struct bucket_traits_impl
|
||||
typedef typename Slist::size_type size_type;
|
||||
/// @endcond
|
||||
|
||||
bucket_traits_impl(bucket_ptr buckets, size_type len)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_traits_impl(bucket_ptr buckets, size_type len)
|
||||
: buckets_(buckets), buckets_len_(len)
|
||||
{}
|
||||
|
||||
bucket_traits_impl(const bucket_traits_impl &x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_traits_impl(const bucket_traits_impl &x)
|
||||
: buckets_(x.buckets_), buckets_len_(x.buckets_len_)
|
||||
{}
|
||||
|
||||
bucket_traits_impl(BOOST_RV_REF(bucket_traits_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_traits_impl(BOOST_RV_REF(bucket_traits_impl) x)
|
||||
: buckets_(x.buckets_), buckets_len_(x.buckets_len_)
|
||||
{ x.buckets_ = bucket_ptr(); x.buckets_len_ = 0; }
|
||||
|
||||
bucket_traits_impl& operator=(BOOST_RV_REF(bucket_traits_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_traits_impl& operator=(BOOST_RV_REF(bucket_traits_impl) x)
|
||||
{
|
||||
buckets_ = x.buckets_; buckets_len_ = x.buckets_len_;
|
||||
x.buckets_ = bucket_ptr(); x.buckets_len_ = 0; return *this;
|
||||
}
|
||||
|
||||
bucket_traits_impl& operator=(BOOST_COPY_ASSIGN_REF(bucket_traits_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE bucket_traits_impl& operator=(BOOST_COPY_ASSIGN_REF(bucket_traits_impl) x)
|
||||
{
|
||||
buckets_ = x.buckets_; buckets_len_ = x.buckets_len_; return *this;
|
||||
}
|
||||
@@ -182,7 +181,7 @@ class hashtable_iterator
|
||||
< const BucketValueTraits >::type const_bucketvaltraits_ptr;
|
||||
typedef typename slist_impl::size_type size_type;
|
||||
|
||||
static node_ptr downcast_bucket(typename bucket_type::node_ptr p)
|
||||
BOOST_INTRUSIVE_FORCEINLINE static node_ptr downcast_bucket(typename bucket_type::node_ptr p)
|
||||
{
|
||||
return pointer_traits<node_ptr>::
|
||||
pointer_to(static_cast<typename node_traits::node&>(*p));
|
||||
@@ -199,17 +198,17 @@ class hashtable_iterator
|
||||
, traitsptr_ (cont ? pointer_traits<const_bucketvaltraits_ptr>::pointer_to(*cont) : const_bucketvaltraits_ptr() )
|
||||
{}
|
||||
|
||||
hashtable_iterator(const hashtable_iterator<BucketValueTraits, false> &other)
|
||||
BOOST_INTRUSIVE_FORCEINLINE hashtable_iterator(const hashtable_iterator<BucketValueTraits, false> &other)
|
||||
: slist_it_(other.slist_it()), traitsptr_(other.get_bucket_value_traits())
|
||||
{}
|
||||
|
||||
BOOST_INTRUSIVE_FORCEINLINE const siterator &slist_it() const
|
||||
{ return slist_it_; }
|
||||
|
||||
hashtable_iterator<BucketValueTraits, false> unconst() const
|
||||
BOOST_INTRUSIVE_FORCEINLINE hashtable_iterator<BucketValueTraits, false> unconst() const
|
||||
{ return hashtable_iterator<BucketValueTraits, false>(this->slist_it(), this->get_bucket_value_traits()); }
|
||||
|
||||
hashtable_iterator& operator++()
|
||||
BOOST_INTRUSIVE_FORCEINLINE hashtable_iterator& operator++()
|
||||
{ this->increment(); return *this; }
|
||||
|
||||
hashtable_iterator operator++(int)
|
||||
|
@@ -120,7 +120,7 @@ class unordered_set_impl
|
||||
public:
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::hashtable(const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
|
||||
explicit unordered_set_impl( const bucket_traits &b_traits
|
||||
BOOST_INTRUSIVE_FORCEINLINE explicit unordered_set_impl( const bucket_traits &b_traits
|
||||
, const hasher & hash_func = hasher()
|
||||
, const key_equal &equal_func = key_equal()
|
||||
, const value_traits &v_traits = value_traits())
|
||||
@@ -129,7 +129,7 @@ class unordered_set_impl
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::hashtable(bool,Iterator,Iterator,const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
|
||||
template<class Iterator>
|
||||
unordered_set_impl( Iterator b
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set_impl( Iterator b
|
||||
, Iterator e
|
||||
, const bucket_traits &b_traits
|
||||
, const hasher & hash_func = hasher()
|
||||
@@ -139,12 +139,12 @@ class unordered_set_impl
|
||||
{}
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::hashtable(hashtable&&)
|
||||
unordered_set_impl(BOOST_RV_REF(unordered_set_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set_impl(BOOST_RV_REF(unordered_set_impl) x)
|
||||
: table_type(BOOST_MOVE_BASE(table_type, x))
|
||||
{}
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::operator=(hashtable&&)
|
||||
unordered_set_impl& operator=(BOOST_RV_REF(unordered_set_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set_impl& operator=(BOOST_RV_REF(unordered_set_impl) x)
|
||||
{ return static_cast<unordered_set_impl&>(table_type::operator=(BOOST_MOVE_BASE(table_type, x))); }
|
||||
|
||||
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
@@ -196,30 +196,30 @@ class unordered_set_impl
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::clone_from(hashtable&&,Cloner,Disposer)
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(BOOST_RV_REF(unordered_set_impl) src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(unordered_set_impl) src, Cloner cloner, Disposer disposer)
|
||||
{ table_type::clone_from(BOOST_MOVE_BASE(table_type, src), cloner, disposer); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_unique(reference)
|
||||
std::pair<iterator, bool> insert(reference value)
|
||||
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator, bool> insert(reference value)
|
||||
{ return table_type::insert_unique(value); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_unique(Iterator,Iterator)
|
||||
template<class Iterator>
|
||||
void insert(Iterator b, Iterator e)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void insert(Iterator b, Iterator e)
|
||||
{ table_type::insert_unique(b, e); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_unique_check(const key_type&,insert_commit_data&)
|
||||
std::pair<iterator, bool> insert_check(const key_type &key, insert_commit_data &commit_data)
|
||||
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator, bool> insert_check(const key_type &key, insert_commit_data &commit_data)
|
||||
{ return table_type::insert_unique_check(key, commit_data); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_unique_check(const KeyType&,KeyHasher,KeyEqual,insert_commit_data&)
|
||||
template<class KeyType, class KeyHasher, class KeyEqual>
|
||||
std::pair<iterator, bool> insert_check
|
||||
BOOST_INTRUSIVE_FORCEINLINE std::pair<iterator, bool> insert_check
|
||||
(const KeyType &key, KeyHasher hasher, KeyEqual key_value_equal, insert_commit_data &commit_data)
|
||||
{ return table_type::insert_unique_check(key, hasher, key_value_equal, commit_data); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_unique_commit
|
||||
iterator insert_commit(reference value, const insert_commit_data &commit_data)
|
||||
BOOST_INTRUSIVE_FORCEINLINE iterator insert_commit(reference value, const insert_commit_data &commit_data)
|
||||
{ return table_type::insert_unique_commit(value, commit_data); }
|
||||
|
||||
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
@@ -506,8 +506,8 @@ class unordered_set
|
||||
{}
|
||||
|
||||
template<class Iterator>
|
||||
unordered_set ( Iterator b
|
||||
, Iterator e
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set
|
||||
( Iterator b, Iterator e
|
||||
, const bucket_traits &b_traits
|
||||
, const hasher & hash_func = hasher()
|
||||
, const key_equal &equal_func = key_equal()
|
||||
@@ -515,19 +515,19 @@ class unordered_set
|
||||
: Base(b, e, b_traits, hash_func, equal_func, v_traits)
|
||||
{}
|
||||
|
||||
unordered_set(BOOST_RV_REF(unordered_set) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set(BOOST_RV_REF(unordered_set) x)
|
||||
: Base(BOOST_MOVE_BASE(Base, x))
|
||||
{}
|
||||
|
||||
unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
|
||||
{ return static_cast<unordered_set&>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
|
||||
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(const unordered_set &src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(const unordered_set &src, Cloner cloner, Disposer disposer)
|
||||
{ Base::clone_from(src, cloner, disposer); }
|
||||
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(BOOST_RV_REF(unordered_set) src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(unordered_set) src, Cloner cloner, Disposer disposer)
|
||||
{ Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
|
||||
};
|
||||
|
||||
@@ -616,7 +616,7 @@ class unordered_multiset_impl
|
||||
public:
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::hashtable(const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
|
||||
explicit unordered_multiset_impl ( const bucket_traits &b_traits
|
||||
BOOST_INTRUSIVE_FORCEINLINE explicit unordered_multiset_impl ( const bucket_traits &b_traits
|
||||
, const hasher & hash_func = hasher()
|
||||
, const key_equal &equal_func = key_equal()
|
||||
, const value_traits &v_traits = value_traits())
|
||||
@@ -625,7 +625,7 @@ class unordered_multiset_impl
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::hashtable(bool,Iterator,Iterator,const bucket_traits &,const hasher &,const key_equal &,const value_traits &)
|
||||
template<class Iterator>
|
||||
unordered_multiset_impl ( Iterator b
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_multiset_impl ( Iterator b
|
||||
, Iterator e
|
||||
, const bucket_traits &b_traits
|
||||
, const hasher & hash_func = hasher()
|
||||
@@ -636,13 +636,13 @@ class unordered_multiset_impl
|
||||
|
||||
//! <b>Effects</b>: to-do
|
||||
//!
|
||||
unordered_multiset_impl(BOOST_RV_REF(unordered_multiset_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_multiset_impl(BOOST_RV_REF(unordered_multiset_impl) x)
|
||||
: table_type(BOOST_MOVE_BASE(table_type, x))
|
||||
{}
|
||||
|
||||
//! <b>Effects</b>: to-do
|
||||
//!
|
||||
unordered_multiset_impl& operator=(BOOST_RV_REF(unordered_multiset_impl) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_multiset_impl& operator=(BOOST_RV_REF(unordered_multiset_impl) x)
|
||||
{ return static_cast<unordered_multiset_impl&>(table_type::operator=(BOOST_MOVE_BASE(table_type, x))); }
|
||||
|
||||
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
@@ -695,16 +695,16 @@ class unordered_multiset_impl
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::clone_from(hashtable&&,Cloner,Disposer)
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(BOOST_RV_REF(unordered_multiset_impl) src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(unordered_multiset_impl) src, Cloner cloner, Disposer disposer)
|
||||
{ table_type::clone_from(BOOST_MOVE_BASE(table_type, src), cloner, disposer); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_equal(reference)
|
||||
iterator insert(reference value)
|
||||
BOOST_INTRUSIVE_FORCEINLINE iterator insert(reference value)
|
||||
{ return table_type::insert_equal(value); }
|
||||
|
||||
//! @copydoc ::boost::intrusive::hashtable::insert_equal(Iterator,Iterator)
|
||||
template<class Iterator>
|
||||
void insert(Iterator b, Iterator e)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void insert(Iterator b, Iterator e)
|
||||
{ table_type::insert_equal(b, e); }
|
||||
|
||||
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
@@ -954,7 +954,7 @@ class unordered_multiset
|
||||
: Base(b_traits, hash_func, equal_func, v_traits)
|
||||
{}
|
||||
|
||||
template<class Iterator>
|
||||
template<class Iterator> BOOST_INTRUSIVE_FORCEINLINE
|
||||
unordered_multiset( Iterator b
|
||||
, Iterator e
|
||||
, const bucket_traits &b_traits
|
||||
@@ -964,19 +964,19 @@ class unordered_multiset
|
||||
: Base(b, e, b_traits, hash_func, equal_func, v_traits)
|
||||
{}
|
||||
|
||||
unordered_multiset(BOOST_RV_REF(unordered_multiset) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_multiset(BOOST_RV_REF(unordered_multiset) x)
|
||||
: Base(BOOST_MOVE_BASE(Base, x))
|
||||
{}
|
||||
|
||||
unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
|
||||
BOOST_INTRUSIVE_FORCEINLINE unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
|
||||
{ return static_cast<unordered_multiset&>(this->Base::operator=(BOOST_MOVE_BASE(Base, x))); }
|
||||
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(const unordered_multiset &src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(const unordered_multiset &src, Cloner cloner, Disposer disposer)
|
||||
{ Base::clone_from(src, cloner, disposer); }
|
||||
|
||||
template <class Cloner, class Disposer>
|
||||
void clone_from(BOOST_RV_REF(unordered_multiset) src, Cloner cloner, Disposer disposer)
|
||||
BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(unordered_multiset) src, Cloner cloner, Disposer disposer)
|
||||
{ Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user