From 3d027d83c1f8667ce35681b113ef999f3ea10540 Mon Sep 17 00:00:00 2001 From: khizmax Date: Sat, 1 Nov 2014 08:16:02 +0300 Subject: [PATCH] Remove trailing spaces --- cds/container/basket_queue.h | 8 ++-- cds/container/details/michael_list_base.h | 2 +- cds/container/impl/lazy_list.h | 2 +- cds/container/impl/michael_kvlist.h | 2 +- cds/container/impl/michael_list.h | 2 +- cds/container/lazy_list_nogc.h | 2 +- cds/container/lazy_list_rcu.h | 2 +- cds/container/michael_list_nogc.h | 2 +- cds/container/michael_list_rcu.h | 4 +- cds/container/michael_map.h | 2 +- cds/container/michael_map_rcu.h | 2 +- cds/container/michael_set.h | 4 +- cds/container/michael_set_nogc.h | 2 +- cds/container/michael_set_rcu.h | 2 +- cds/container/moir_queue.h | 4 +- cds/container/msqueue.h | 8 ++-- cds/container/optimistic_queue.h | 6 +-- cds/container/rwqueue.h | 6 +-- cds/container/segmented_queue.h | 2 +- cds/container/split_list_map_nogc.h | 2 +- cds/container/split_list_set.h | 2 +- cds/container/split_list_set_nogc.h | 2 +- cds/container/split_list_set_rcu.h | 2 +- cds/container/treiber_stack.h | 10 ++--- cds/container/tsigas_cycle_queue.h | 8 ++-- cds/container/vyukov_mpmc_cycle_queue.h | 10 ++--- cds/details/marked_ptr.h | 2 +- cds/intrusive/basket_queue.h | 10 ++--- cds/intrusive/details/base.h | 30 +++++++-------- cds/intrusive/details/lazy_list_base.h | 2 +- cds/intrusive/details/michael_list_base.h | 2 +- cds/intrusive/details/michael_set_base.h | 2 +- cds/intrusive/details/split_list_base.h | 10 ++--- cds/intrusive/impl/lazy_list.h | 2 +- cds/intrusive/impl/michael_list.h | 2 +- cds/intrusive/lazy_list_nogc.h | 2 +- cds/intrusive/michael_list_nogc.h | 2 +- cds/intrusive/michael_list_rcu.h | 6 +-- cds/intrusive/michael_set.h | 2 +- cds/intrusive/michael_set_nogc.h | 2 +- cds/intrusive/michael_set_rcu.h | 2 +- cds/intrusive/msqueue.h | 10 ++--- cds/intrusive/optimistic_queue.h | 12 +++--- cds/intrusive/segmented_queue.h | 2 +- cds/intrusive/split_list.h | 4 +- cds/intrusive/split_list_nogc.h | 2 +- cds/intrusive/split_list_rcu.h | 2 +- cds/intrusive/treiber_stack.h | 38 +++++++++---------- cds/intrusive/tsigas_cycle_queue.h | 10 ++--- cds/intrusive/vyukov_mpmc_cycle_queue.h | 8 ++-- tests/test-hdr/deque/hdr_fcdeque.cpp | 2 +- .../ordered_list/hdr_intrusive_lazy_nogc.cpp | 2 +- tests/test-hdr/queue/hdr_basketqueue_dhp.cpp | 2 +- tests/test-hdr/queue/hdr_basketqueue_hp.cpp | 2 +- tests/test-hdr/queue/hdr_fcqueue.cpp | 2 +- .../queue/hdr_intrusive_basketqueue_dhp.cpp | 2 +- .../hdr_intrusive_optimisticqueue_dhp.cpp | 4 +- .../hdr_intrusive_optimisticqueue_hp.cpp | 4 +- .../hdr_intrusive_splitlist_set_hp_lazy.cpp | 2 +- .../stack/hdr_elimination_stack_dhp.cpp | 4 +- .../test-hdr/stack/hdr_treiber_stack_dhp.cpp | 4 +- tests/test-hdr/stack/hdr_treiber_stack_hp.cpp | 4 +- tests/unit/map2/map_delodd.cpp | 6 +-- tests/unit/queue/intrusive_queue_type.h | 12 +++--- tests/unit/queue/queue_type.h | 4 +- tests/unit/set2/set_types.h | 2 +- tests/unit/stack/stack_type.h | 12 +++--- 67 files changed, 168 insertions(+), 168 deletions(-) diff --git a/cds/container/basket_queue.h b/cds/container/basket_queue.h index 376600a2..e4e62e24 100644 --- a/cds/container/basket_queue.h +++ b/cds/container/basket_queue.h @@ -42,7 +42,7 @@ namespace cds { namespace container { typedef basket_queue::empty_stat stat; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -68,7 +68,7 @@ namespace cds { namespace container { Example: declare \p %BasketQueue with item counting and internal statistics \code - typedef cds::container::BasketQueue< cds::gc::HP, Foo, + typedef cds::container::BasketQueue< cds::gc::HP, Foo, typename cds::container::basket_queue::make_traits< cds::opt::item_counte< cds::atomicity::item_counter >, cds::opt::stat< cds::intrusive::basket_queue::stat<> > @@ -193,8 +193,8 @@ namespace cds { namespace container { typedef cds::container::BasketQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::BasketQueue< cds::gc::HP, Foo, - typename cds::container::basket_queue::make_traits< + typedef cds::container::BasketQueue< cds::gc::HP, Foo, + typename cds::container::basket_queue::make_traits< cds::opt::stat< cds::container::basket_queue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type diff --git a/cds/container/details/michael_list_base.h b/cds/container/details/michael_list_base.h index 4660b5ff..a88eb485 100644 --- a/cds/container/details/michael_list_base.h +++ b/cds/container/details/michael_list_base.h @@ -37,7 +37,7 @@ namespace cds { namespace container { typedef atomicity::empty_item_counter item_counter; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ diff --git a/cds/container/impl/lazy_list.h b/cds/container/impl/lazy_list.h index bc82f5fa..eada04e0 100644 --- a/cds/container/impl/lazy_list.h +++ b/cds/container/impl/lazy_list.h @@ -355,7 +355,7 @@ namespace cds { namespace container { \code void func( value_type& item ) ;\endcode The argument \p item of user-defined functor \p func is the reference - to the list's item inserted. + to the list's item inserted. When \p func is called it has exclusive access to the item. The user-defined functor is called only if the inserting is success. diff --git a/cds/container/impl/michael_kvlist.h b/cds/container/impl/michael_kvlist.h index bd82088c..70225fbc 100644 --- a/cds/container/impl/michael_kvlist.h +++ b/cds/container/impl/michael_kvlist.h @@ -17,7 +17,7 @@ namespace cds { namespace container { constant key and alterable value. Usually, ordered single-linked list is used as a building block for the hash table implementation. - The complexity of searching is O(N) where \p N is the item count in the list, not in the + The complexity of searching is O(N) where \p N is the item count in the list, not in the hash table. Template arguments: diff --git a/cds/container/impl/michael_list.h b/cds/container/impl/michael_list.h index aa899236..d9a1ab94 100644 --- a/cds/container/impl/michael_list.h +++ b/cds/container/impl/michael_list.h @@ -13,7 +13,7 @@ namespace cds { namespace container { \anchor cds_nonintrusive_MichaelList_gc Usually, ordered single-linked list is used as a building block for the hash table implementation. - The complexity of searching is O(N), where \p N is the item count in the list, not in the + The complexity of searching is O(N), where \p N is the item count in the list, not in the hash table. Source: diff --git a/cds/container/lazy_list_nogc.h b/cds/container/lazy_list_nogc.h index bc5d6149..7e46e8da 100644 --- a/cds/container/lazy_list_nogc.h +++ b/cds/container/lazy_list_nogc.h @@ -20,7 +20,7 @@ namespace cds { namespace container { @copydetails cds_nonintrusive_LazyList_gc */ template < - typename T, + typename T, #ifdef CDS_DOXYGEN_INVOKED typename Traits = lazy_list::traits #else diff --git a/cds/container/lazy_list_rcu.h b/cds/container/lazy_list_rcu.h index d35f3184..744e7669 100644 --- a/cds/container/lazy_list_rcu.h +++ b/cds/container/lazy_list_rcu.h @@ -348,7 +348,7 @@ namespace cds { namespace container { \code void func( value_type& itemValue ) ;\endcode The argument \p itemValue of user-defined functor \p func is the reference - to the list's item inserted. + to the list's item inserted. The user-defined functor is called only if the inserting is success. The type \p Q should contain the complete key of the node. diff --git a/cds/container/michael_list_nogc.h b/cds/container/michael_list_nogc.h index 3812342c..3c57529f 100644 --- a/cds/container/michael_list_nogc.h +++ b/cds/container/michael_list_nogc.h @@ -41,7 +41,7 @@ namespace cds { namespace container { See \ref cds_nonintrusive_MichaelList_gc "MichaelList" for description of template parameters. */ - template gc; ///< RCU + typedef cds::urcu::gc gc; ///< RCU typedef T value_type; ///< Type of value stored in the list typedef Traits traits; ///< List traits @@ -420,7 +420,7 @@ namespace cds { namespace container { /** \anchor cds_nonintrusive_MichealList_rcu_erase_val Since the key of MichaelList's item type \p value_type is not explicitly specified, template parameter \p Q defines the key type searching in the list. - The list item comparator should be able to compare values of the type \p value_type + The list item comparator should be able to compare values of the type \p value_type and \p Q in any order. RCU \p synchronize method can be called. RCU should not be locked. diff --git a/cds/container/michael_map.h b/cds/container/michael_map.h index 1f7291e9..5cc0350a 100644 --- a/cds/container/michael_map.h +++ b/cds/container/michael_map.h @@ -377,7 +377,7 @@ namespace cds { namespace container { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/container/michael_map_rcu.h b/cds/container/michael_map_rcu.h index ddf7e850..e06c318e 100644 --- a/cds/container/michael_map_rcu.h +++ b/cds/container/michael_map_rcu.h @@ -291,7 +291,7 @@ namespace cds { namespace container { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/container/michael_set.h b/cds/container/michael_set.h index 91c7ef94..a15d7d29 100644 --- a/cds/container/michael_set.h +++ b/cds/container/michael_set.h @@ -304,7 +304,7 @@ namespace cds { namespace container { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); @@ -349,7 +349,7 @@ namespace cds { namespace container { void func( value_type& val ); \endcode where \p val is the item inserted. - The user-defined functor is called only if the inserting is success. + The user-defined functor is called only if the inserting is success. @warning For \ref cds_nonintrusive_MichaelList_gc "MichaelList" as the bucket see \ref cds_intrusive_item_creating "insert item troubleshooting". \ref cds_nonintrusive_LazyList_gc "LazyList" provides exclusive access to inserted item and does not require any node-level diff --git a/cds/container/michael_set_nogc.h b/cds/container/michael_set_nogc.h index bc46d7bc..49677655 100644 --- a/cds/container/michael_set_nogc.h +++ b/cds/container/michael_set_nogc.h @@ -162,7 +162,7 @@ namespace cds { namespace container { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/container/michael_set_rcu.h b/cds/container/michael_set_rcu.h index 7655ebed..e1e617c1 100644 --- a/cds/container/michael_set_rcu.h +++ b/cds/container/michael_set_rcu.h @@ -22,7 +22,7 @@ namespace cds { namespace container { Template parameters are: - \p RCU - one of \ref cds_urcu_gc "RCU type" - - \p OrderedList - ordered list implementation used as the bucket for hash set, for example, + - \p OrderedList - ordered list implementation used as the bucket for hash set, for example, \ref cds_nonintrusive_MichaelList_rcu "MichaelList". The ordered list implementation specifies the type \p T stored in the hash-set, the comparison functor for the type \p T and other features specific for diff --git a/cds/container/moir_queue.h b/cds/container/moir_queue.h index 969656f8..809328ed 100644 --- a/cds/container/moir_queue.h +++ b/cds/container/moir_queue.h @@ -37,8 +37,8 @@ namespace cds { namespace container { typedef cds::container::MoirQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::MoirQueue< cds::gc::HP, Foo, - typename cds::container::msqueue::make_traits< + typedef cds::container::MoirQueue< cds::gc::HP, Foo, + typename cds::container::msqueue::make_traits< cds::opt::stat< cds::container::msqueue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type diff --git a/cds/container/msqueue.h b/cds/container/msqueue.h index e217da4f..3f5c2671 100644 --- a/cds/container/msqueue.h +++ b/cds/container/msqueue.h @@ -40,7 +40,7 @@ namespace cds { namespace container { typedef msqueue::empty_stat stat; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -66,7 +66,7 @@ namespace cds { namespace container { Example: declare \p %MSQueue with item counting and internal statistics \code - typedef cds::container::MSQueue< cds::gc::HP, Foo, + typedef cds::container::MSQueue< cds::gc::HP, Foo, typename cds::container::msqueue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter >, cds::opt::stat< cds::container::msqueue::stat<> > @@ -151,8 +151,8 @@ namespace cds { namespace container { typedef cds::container::MSQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::MSQueue< cds::gc::HP, Foo, - typename cds::container::msqueue::make_traits< + typedef cds::container::MSQueue< cds::gc::HP, Foo, + typename cds::container::msqueue::make_traits< cds::opt::stat< cds::container::msqueue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type diff --git a/cds/container/optimistic_queue.h b/cds/container/optimistic_queue.h index f3025c42..6f34bba5 100644 --- a/cds/container/optimistic_queue.h +++ b/cds/container/optimistic_queue.h @@ -58,7 +58,7 @@ namespace cds { namespace container { - opt::item_counter - the type of item counting feature. Default is \p cds::atomicity::empty_item_counter (item counting disabled) To enable item counting use \p cds::atomicity::item_counter - opt::stat - the type to gather internal statistics. - Possible statistics types are: \p optimistic_queue::stat, \p optimistic_queue::empty_stat, + Possible statistics types are: \p optimistic_queue::stat, \p optimistic_queue::empty_stat, user-provided class that supports \p %optimistic_queue::stat interface. Default is \p %optimistic_queue::empty_stat. - opt::alignment - the alignment for internal queue data. Default is \p opt::cache_line_alignment @@ -152,8 +152,8 @@ namespace cds { namespace container { typedef cds::container::OptimisticQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::OptimisticQueue< cds::gc::HP, Foo, - typename cds::container::optimistic_queue::make_traits< + typedef cds::container::OptimisticQueue< cds::gc::HP, Foo, + typename cds::container::optimistic_queue::make_traits< cds::opt::stat< cds::container::optimistic_queue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type diff --git a/cds/container/rwqueue.h b/cds/container/rwqueue.h index 0ee16f90..55185f81 100644 --- a/cds/container/rwqueue.h +++ b/cds/container/rwqueue.h @@ -39,7 +39,7 @@ namespace cds { namespace container { Example: declare mutex-based \p %RWQueue with item counting \code - typedef cds::container::RWQueue< Foo, + typedef cds::container::RWQueue< Foo, typename cds::container::rwqueue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter >, cds::opt::lock_type< std::mutex > @@ -82,8 +82,8 @@ namespace cds { namespace container { typedef cds::container::RWQueue< Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::RWQueue< Foo, - typename cds::container::rwqueue::make_traits< + typedef cds::container::RWQueue< Foo, + typename cds::container::rwqueue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter > >::type > myQueue; diff --git a/cds/container/segmented_queue.h b/cds/container/segmented_queue.h index fe603461..1b2a1b38 100644 --- a/cds/container/segmented_queue.h +++ b/cds/container/segmented_queue.h @@ -114,7 +114,7 @@ namespace cds { namespace container { } }; - struct intrusive_type_traits: public original_type_traits + struct intrusive_type_traits: public original_type_traits { typedef node_disposer disposer; }; diff --git a/cds/container/split_list_map_nogc.h b/cds/container/split_list_map_nogc.h index b5e03a9e..8f86af6d 100644 --- a/cds/container/split_list_map_nogc.h +++ b/cds/container/split_list_map_nogc.h @@ -12,7 +12,7 @@ namespace cds { namespace container { /** @ingroup cds_nonintrusive_map \anchor cds_nonintrusive_SplitListMap_nogc - This specialization is so-called append-only. + This specialization is so-called append-only. The map does not support the removal of list item. See \ref cds_nonintrusive_SplitListMap_hp "SplitListMap" for description of template parameters. diff --git a/cds/container/split_list_set.h b/cds/container/split_list_set.h index 31ec11ff..74702f0b 100644 --- a/cds/container/split_list_set.h +++ b/cds/container/split_list_set.h @@ -33,7 +33,7 @@ namespace cds { namespace container { \par Usage You should decide what garbage collector you want, and what ordered list you want to use as a base. Split-ordered list - is original data structure based on an ordered list. + is original data structure based on an ordered list. Suppose, you want construct split-list set based on \p gc::DHP GC and \p LazyList as ordered list implementation. So, you beginning your program with following include: diff --git a/cds/container/split_list_set_nogc.h b/cds/container/split_list_set_nogc.h index 62810334..30d8fe36 100644 --- a/cds/container/split_list_set_nogc.h +++ b/cds/container/split_list_set_nogc.h @@ -21,7 +21,7 @@ namespace cds { namespace container { @warning Many member functions return an iterator pointing to an item. The iterator can be used to set up field of the item, - but you should provide an exclusive access to it, + but you should provide an exclusive access to it, see \ref cds_intrusive_item_creating "insert item troubleshooting". */ template < diff --git a/cds/container/split_list_set_rcu.h b/cds/container/split_list_set_rcu.h index 67a5be77..938bbc7c 100644 --- a/cds/container/split_list_set_rcu.h +++ b/cds/container/split_list_set_rcu.h @@ -136,7 +136,7 @@ namespace cds { namespace container { ,cc::split_list::make_traits< // metafunction to build split-list traits cc::split_list::ordered_list // tag for underlying ordered list implementation ,cc::opt::hash< foo_hash > // hash functor - ,cc::split_list::ordered_list_traits< // ordered list traits + ,cc::split_list::ordered_list_traits< // ordered list traits cc::lazy_list::make_traits< // metafunction to build lazy list traits cc::opt::less< foo_less > // less-based compare functor >::type diff --git a/cds/container/treiber_stack.h b/cds/container/treiber_stack.h index 20e9a653..cb6777a8 100644 --- a/cds/container/treiber_stack.h +++ b/cds/container/treiber_stack.h @@ -188,7 +188,7 @@ namespace cds { namespace container { typedef cds::container::TreiberStack< cds::gc::HP, Foo, myTraits > myStack; // Equivalent make_traits example: - typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, + typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, typename cds::intrusive::treiber_stack::make_traits< cds::opt::item_counter< cds::atomicity::item_counter >, cds::opt::stat< cds::intrusive::treiber_stack::stat<> > @@ -196,10 +196,10 @@ namespace cds { namespace container { > myStack; \endcode */ - template < - typename GC, - typename T, - typename Traits = treiber_stack::traits + template < + typename GC, + typename T, + typename Traits = treiber_stack::traits > class TreiberStack : public diff --git a/cds/container/tsigas_cycle_queue.h b/cds/container/tsigas_cycle_queue.h index 7c46531a..78869119 100644 --- a/cds/container/tsigas_cycle_queue.h +++ b/cds/container/tsigas_cycle_queue.h @@ -62,7 +62,7 @@ namespace cds { namespace container { Example: declare \p %TsigasCycleQueue with item counting and static iternal buffer of size 1024: \code - typedef cds::container::TsigasCycleQueue< Foo, + typedef cds::container::TsigasCycleQueue< Foo, typename cds::container::tsigas_queue::make_traits< cds::opt::buffer< cds::opt::v::static_buffer< void *, 1024 >, cds::opt::item_counte< cds::atomicity::item_counter > @@ -133,8 +133,8 @@ namespace cds { namespace container { typedef cds::container::TsigasCycleQueue< Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::TsigasCycleQueue< cds::gc::HP, Foo, - typename cds::container::tsigas_queue::make_traits< + typedef cds::container::TsigasCycleQueue< cds::gc::HP, Foo, + typename cds::container::tsigas_queue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter > >::type > myQueue; @@ -149,7 +149,7 @@ namespace cds { namespace container { }; // Queue of Foo, capacity is 1024, statically allocated buffer: - typedef cds::container::TsigasCycleQueue< Foo, + typedef cds::container::TsigasCycleQueue< Foo, typename cds::container::tsigas_queue::make_traits< cds::opt::buffer< cds::opt::v::static_buffer< Foo, 1024 > > >::type diff --git a/cds/container/vyukov_mpmc_cycle_queue.h b/cds/container/vyukov_mpmc_cycle_queue.h index 30095b70..b6fc3efa 100644 --- a/cds/container/vyukov_mpmc_cycle_queue.h +++ b/cds/container/vyukov_mpmc_cycle_queue.h @@ -27,7 +27,7 @@ namespace cds { namespace container { */ typedef cds::opt::v::dynamic_buffer< void * > buffer; - /// A functor to clean item dequeued. + /// A functor to clean item dequeued. /** The functor calls the destructor for queue item. After an item is dequeued, \p value_cleaner cleans the cell that the item has been occupied. @@ -57,7 +57,7 @@ namespace cds { namespace container { - \p opt::buffer - the buffer type for internal cyclic array. Possible types are: \p opt::v::dynamic_buffer (the default), \p opt::v::static_buffer. The type of element in the buffer is not important: it will be changed via \p rebind metafunction. - - \p opt::value_cleaner - a functor to clean item dequeued. + - \p opt::value_cleaner - a functor to clean item dequeued. The functor calls the destructor for queue item. After an item is dequeued, \p value_cleaner cleans the cell that the item has been occupied. If \p T is a complex type, \p value_cleaner may be the useful feature. @@ -70,7 +70,7 @@ namespace cds { namespace container { Example: declare \p %VyukovMPMCCycleQueue with item counting and static iternal buffer of size 1024: \code - typedef cds::container::VyukovMPMCCycleQueue< Foo, + typedef cds::container::VyukovMPMCCycleQueue< Foo, typename cds::container::vyukov_queue::make_traits< cds::opt::buffer< cds::opt::v::static_buffer< void *, 1024 >, cds::opt::item_counte< cds::atomicity::item_counter > @@ -117,8 +117,8 @@ namespace cds { namespace container { typedef cds::container::VyukovMPMCCycleQueue< Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::container::VyukovMPMCCycleQueue< cds::gc::HP, Foo, - typename cds::container::vykov_queue::make_traits< + typedef cds::container::VyukovMPMCCycleQueue< cds::gc::HP, Foo, + typename cds::container::vykov_queue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter > >::type > myQueue; diff --git a/cds/details/marked_ptr.h b/cds/details/marked_ptr.h index 8930634e..9471d67a 100644 --- a/cds/details/marked_ptr.h +++ b/cds/details/marked_ptr.h @@ -340,7 +340,7 @@ CDS_CXX11_ATOMIC_BEGIN_NAMESPACE atomic& operator=(const atomic&) = delete; #if !(CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION <= CDS_COMPILER_MSVC12) - // MSVC12: warning C4522: multiple assignment operators specified + // MSVC12: warning C4522: multiple assignment operators specified atomic& operator=(const atomic&) volatile = delete; marked_ptr operator=(marked_ptr val) volatile CDS_NOEXCEPT { diff --git a/cds/intrusive/basket_queue.h b/cds/intrusive/basket_queue.h index 4cace943..bdcf27a3 100644 --- a/cds/intrusive/basket_queue.h +++ b/cds/intrusive/basket_queue.h @@ -212,7 +212,7 @@ namespace cds { namespace intrusive { typedef basket_queue::empty_stat stat; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -247,7 +247,7 @@ namespace cds { namespace intrusive { Example: declare \p %BasketQueue with item counting and internal statistics \code - typedef cds::intrusive::BasketQueue< cds::gc::HP, Foo, + typedef cds::intrusive::BasketQueue< cds::gc::HP, Foo, typename cds::intrusive::basket_queue::make_traits< cds::intrusive::opt:hook< cds::intrusive::basket_queue::base_hook< cds::opt::gc >>, cds::opt::item_counte< cds::atomicity::item_counter >, @@ -327,8 +327,8 @@ namespace cds { namespace intrusive { typedef cds::intrusive::BasketQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::intrusive::BasketQueue< cds::gc::HP, Foo, - typename cds::intrusive::basket_queue::make_traits< + typedef cds::intrusive::BasketQueue< cds::gc::HP, Foo, + typename cds::intrusive::basket_queue::make_traits< cds::opt::stat< cds::intrusive::basket_queue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type @@ -380,7 +380,7 @@ namespace cds { namespace intrusive { ci::basket_queue::node< hp_gc > hMember; }; - struct barTraits: public + struct barTraits: public ci::basket_queue::make_traits< ci::opt::hook< ci::basket_queue::member_hook< diff --git a/cds/intrusive/details/base.h b/cds/intrusive/details/base.h index 5bf0b389..e862cb9b 100644 --- a/cds/intrusive/details/base.h +++ b/cds/intrusive/details/base.h @@ -24,19 +24,19 @@ namespace cds { \anchor cds_intrusive_hook_tag \par Tags Many hooks and nodes for intrusive containers contain template argument \p Tag. - This argument serves as a tag, so you can derive from more than one container's node and hence put an object in multiple intrusive containers - at the same time. An incomplete type can serve as a tag. If you specify two hooks, you must specify a different tag for each one. - Example: + This argument serves as a tag, so you can derive from more than one container's node and hence put an object in multiple intrusive containers + at the same time. An incomplete type can serve as a tag. If you specify two hooks, you must specify a different tag for each one. + Example: \code struct tag1; - cds::intrusive::treiber_stack::node< cds::gc::HP, tag > + cds::intrusive::treiber_stack::node< cds::gc::HP, tag > \endcode If no tag is specified the default \p cds::opt::none will be used. \anchor cds_intrusive_item_creating \par Inserting items - Many intrusive and non-intrusive (standard-like) containers in the library have the member functions - that take an functor argument to initialize the inserted item after it has been successfully inserted, + Many intrusive and non-intrusive (standard-like) containers in the library have the member functions + that take an functor argument to initialize the inserted item after it has been successfully inserted, for example: \code template @@ -79,19 +79,19 @@ namespace cds { Create a new item Find key 5 with calling Foo(5) ctor Insert the new item - The key 5 is found - + The key 5 is found - call the functor (!) Perform complex - initialization - + initialization - call the functor \endcode (!): Thread 2 found the key and call its functor on incomplete initialized item. Simultaneous access to the item also is possible. In this case Thread 1 is - initializing the item, thread 2 is reading (or writing) the item's fields. + initializing the item, thread 2 is reading (or writing) the item's fields. In any case, Thread 2 can read uninitialized or incomplete initialized fields. - \p ensure member function race. Suppose, thread 1 and thread 2 perform - the + \p ensure member function race. Suppose, thread 1 and thread 2 perform + the following code: \code q.ensure( 5, []( bool bNew, Foo& item, int arg ) @@ -105,7 +105,7 @@ namespace cds { } else { // do some work - if ( !item.f1 ) + if ( !item.f1 ) item.f1 = ...; else { //... @@ -121,12 +121,12 @@ namespace cds { key 5 not found insert new item Foo(5) Find 5 Key 5 found - call the functor with + call the functor with bNew = false (!) call the functor with bNew = true \endcode - (!): Thread 2 executes its functor on incomplete initialized item. + (!): Thread 2 executes its functor on incomplete initialized item. To protect your code from such races you can use some item-level synchronization, for example: @@ -151,7 +151,7 @@ namespace cds { } else { // do some work - if ( !item.f1 ) + if ( !item.f1 ) item.f1 = ...; else { //... diff --git a/cds/intrusive/details/lazy_list_base.h b/cds/intrusive/details/lazy_list_base.h index adb3a680..e348eac5 100644 --- a/cds/intrusive/details/lazy_list_base.h +++ b/cds/intrusive/details/lazy_list_base.h @@ -223,7 +223,7 @@ namespace cds { namespace intrusive { static const opt::link_check_type link_checker = opt::debug_check_link; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ diff --git a/cds/intrusive/details/michael_list_base.h b/cds/intrusive/details/michael_list_base.h index caaa6502..8972be10 100644 --- a/cds/intrusive/details/michael_list_base.h +++ b/cds/intrusive/details/michael_list_base.h @@ -204,7 +204,7 @@ namespace cds { namespace intrusive { static const opt::link_check_type link_checker = opt::debug_check_link; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ diff --git a/cds/intrusive/details/michael_set_base.h b/cds/intrusive/details/michael_set_base.h index a2b75734..79f3549b 100644 --- a/cds/intrusive/details/michael_set_base.h +++ b/cds/intrusive/details/michael_set_base.h @@ -93,7 +93,7 @@ namespace cds { namespace intrusive { template class iterator { - friend class iterator < OrderedList, !IsConst > ; + friend class iterator < OrderedList, !IsConst >; protected: typedef OrderedList bucket_type; typedef typename list_iterator_selector< bucket_type, IsConst>::bucket_ptr bucket_ptr; diff --git a/cds/intrusive/details/split_list_base.h b/cds/intrusive/details/split_list_base.h index 3b3abee9..744ee934 100644 --- a/cds/intrusive/details/split_list_base.h +++ b/cds/intrusive/details/split_list_base.h @@ -91,8 +91,8 @@ namespace cds { namespace intrusive { void onExtractFailed() { ++m_nExtractFailed; } void onFindSuccess() { ++m_nFindSuccess; } void onFindFailed() { ++m_nFindFailed; } - bool onFind(bool bSuccess) - { + bool onFind(bool bSuccess) + { if ( bSuccess ) onFindSuccess(); else @@ -161,7 +161,7 @@ namespace cds { namespace intrusive { /// Internal statistics (by default, disabled) /** - Possible statistics types are: \p split_list::stat (enable internal statistics), + Possible statistics types are: \p split_list::stat (enable internal statistics), \p split_list::empty_stat (the default, internal statistics disabled), user-provided class that supports \p %split_list::stat interface. */ @@ -169,7 +169,7 @@ namespace cds { namespace intrusive { /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -215,7 +215,7 @@ namespace cds { namespace intrusive { - \p opt::item_counter - optional, specifies item counting policy. See \p traits::item_counter for default type. - \p opt::memory_model - C++ memory model for atomic operations. - Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) + Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). - \p opt::allocator - optional, bucket table allocator. Default is \ref CDS_DEFAULT_ALLOCATOR. - \p split_list::dynamic_bucket_table - use dynamic or static bucket table implementation. diff --git a/cds/intrusive/impl/lazy_list.h b/cds/intrusive/impl/lazy_list.h index ca192390..c2c706ea 100644 --- a/cds/intrusive/impl/lazy_list.h +++ b/cds/intrusive/impl/lazy_list.h @@ -29,7 +29,7 @@ namespace cds { namespace intrusive { - \p GC - Garbage collector used. Note the \p GC must be the same as the GC used for item type \p T (see lazy_list::node). - \p T - type to be stored in the list. The type must be based on lazy_list::node (for lazy_list::base_hook) or it must have a member of type lazy_list::node (for lazy_list::member_hook). - - \p Traits - type traits. See lazy_list::traits for explanation. + - \p Traits - type traits. See lazy_list::traits for explanation. It is possible to declare option-based list with cds::intrusive::lazy_list::make_traits metafunction istead of \p Traits template argument. For example, the following traits-based declaration of \p gc::HP lazy list \code diff --git a/cds/intrusive/impl/michael_list.h b/cds/intrusive/impl/michael_list.h index 09e5072e..12106f28 100644 --- a/cds/intrusive/impl/michael_list.h +++ b/cds/intrusive/impl/michael_list.h @@ -23,7 +23,7 @@ namespace cds { namespace intrusive { - \p GC - Garbage collector used. Note the \p GC must be the same as the GC used for item type \p T (see \p michael_list::node). - \p T - type to be stored in the list. The type must be based on \p michael_list::node (for \p michael_list::base_hook) or it must have a member of type \p michael_list::node (for \p michael_list::member_hook). - - \p Traits - type traits, default is \p michael_list::traits. It is possible to declare option-based + - \p Traits - type traits, default is \p michael_list::traits. It is possible to declare option-based list with \p cds::intrusive::michael_list::make_traits metafunction: For example, the following traits-based declaration of \p gc::HP Michael's list \code diff --git a/cds/intrusive/lazy_list_nogc.h b/cds/intrusive/lazy_list_nogc.h index c024d9d9..90486114 100644 --- a/cds/intrusive/lazy_list_nogc.h +++ b/cds/intrusive/lazy_list_nogc.h @@ -20,7 +20,7 @@ namespace cds { namespace intrusive { typename Lock = cds::lock::Spin, typename Tag = opt::none #else - typename Lock, + typename Lock, typename Tag #endif > diff --git a/cds/intrusive/michael_list_nogc.h b/cds/intrusive/michael_list_nogc.h index ca2ca629..64f5c3dd 100644 --- a/cds/intrusive/michael_list_nogc.h +++ b/cds/intrusive/michael_list_nogc.h @@ -41,7 +41,7 @@ namespace cds { namespace intrusive { See \ref cds_intrusive_MichaelList_hp "MichaelList" for description of template parameters. */ - template < typename T, + template < typename T, #ifdef CDS_DOXYGEN_INVOKED class Traits = michael_list::traits #else diff --git a/cds/intrusive/michael_list_rcu.h b/cds/intrusive/michael_list_rcu.h index 44d100a6..0f29034a 100644 --- a/cds/intrusive/michael_list_rcu.h +++ b/cds/intrusive/michael_list_rcu.h @@ -22,8 +22,8 @@ namespace cds { namespace intrusive { - \p RCU - one of \ref cds_urcu_gc "RCU type" - \p T - type to be stored in the list; the type \p T should be based on (or has a member of type) cds::intrusive::micheal_list::node - - \p Traits - type traits. See \p michael_list::traits for explanation. It is possible to declare option-based - list with \p cds::intrusive::michael_list::make_traits metafunction, + - \p Traits - type traits. See \p michael_list::traits for explanation. It is possible to declare option-based + list with \p cds::intrusive::michael_list::make_traits metafunction, see \ref cds_intrusive_MichaelList_hp "here" for explanations. \par Usage @@ -38,7 +38,7 @@ namespace cds { namespace intrusive { typedef cds::intrusive::MichaelList >, Foo > rcu_michael_list; \endcode */ - template < typename RCU, typename T, + template < typename RCU, typename T, #ifdef CDS_DOXYGEN_INVOKED class Traits = michael_list::traits #else diff --git a/cds/intrusive/michael_set.h b/cds/intrusive/michael_set.h index 8b1bee12..6dcff726 100644 --- a/cds/intrusive/michael_set.h +++ b/cds/intrusive/michael_set.h @@ -358,7 +358,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/intrusive/michael_set_nogc.h b/cds/intrusive/michael_set_nogc.h index 9c9ae882..c3138b9b 100644 --- a/cds/intrusive/michael_set_nogc.h +++ b/cds/intrusive/michael_set_nogc.h @@ -145,7 +145,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/intrusive/michael_set_rcu.h b/cds/intrusive/michael_set_rcu.h index 13fdc347..1e1859bf 100644 --- a/cds/intrusive/michael_set_rcu.h +++ b/cds/intrusive/michael_set_rcu.h @@ -203,7 +203,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "atomicity::empty_item_counter is not allowed as a item counter"); m_Buckets = bucket_table_allocator().NewArray( bucket_count() ); diff --git a/cds/intrusive/msqueue.h b/cds/intrusive/msqueue.h index 088f763d..ceb85dee 100644 --- a/cds/intrusive/msqueue.h +++ b/cds/intrusive/msqueue.h @@ -21,7 +21,7 @@ namespace cds { namespace intrusive { - Tag - a \ref cds_intrusive_hook_tag "tag" */ template - using node = cds::intrusive::single_link::node< GC, Tag > ; + using node = cds::intrusive::single_link::node< GC, Tag >; /// Base hook /** @@ -156,7 +156,7 @@ namespace cds { namespace intrusive { typedef msqueue::empty_stat stat; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -190,7 +190,7 @@ namespace cds { namespace intrusive { Example: declare \p %MSQueue with item counting and internal statistics \code - typedef cds::intrusive::MSQueue< cds::gc::HP, Foo, + typedef cds::intrusive::MSQueue< cds::gc::HP, Foo, typename cds::intrusive::msqueue::make_traits< cds::intrusive::opt:hook< cds::intrusive::msqueue::base_hook< cds::opt::gc >>, cds::opt::item_counte< cds::atomicity::item_counter >, @@ -232,8 +232,8 @@ namespace cds { namespace intrusive { typedef cds::intrusive::MSQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::intrusive::MSQueue< cds::gc::HP, Foo, - typename cds::intrusive::msqueue::make_traits< + typedef cds::intrusive::MSQueue< cds::gc::HP, Foo, + typename cds::intrusive::msqueue::make_traits< cds::opt::stat< cds::intrusive::msqueue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type diff --git a/cds/intrusive/optimistic_queue.h b/cds/intrusive/optimistic_queue.h index 12ab10ba..ca0216ac 100644 --- a/cds/intrusive/optimistic_queue.h +++ b/cds/intrusive/optimistic_queue.h @@ -243,7 +243,7 @@ namespace cds { namespace intrusive { typedef cds::atomicity::empty_item_counter item_counter; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -276,7 +276,7 @@ namespace cds { namespace intrusive { - opt::item_counter - the type of item counting feature. Default is \p cds::atomicity::empty_item_counter (item counting disabled) To enable item counting use \p cds::atomicity::item_counter - opt::stat - the type to gather internal statistics. - Possible statistics types are: \p optimistic_queue::stat, \p optimistic_queue::empty_stat, + Possible statistics types are: \p optimistic_queue::stat, \p optimistic_queue::empty_stat, user-provided class that supports \p %optimistic_queue::stat interface. Default is \p %optimistic_queue::empty_stat (internal statistics disabled). - opt::alignment - the alignment for internal queue data. Default is \p opt::cache_line_alignment @@ -285,7 +285,7 @@ namespace cds { namespace intrusive { Example: declare \p %OptimisticQueue with item counting and internal statistics \code - typedef cds::intrusive::OptimisticQueue< cds::gc::HP, Foo, + typedef cds::intrusive::OptimisticQueue< cds::gc::HP, Foo, typename cds::intrusive::optimistic_queue::make_traits< cds::intrusive::opt:hook< cds::intrusive::optimistic_queue::base_hook< cds::opt::gc >>, cds::opt::item_counte< cds::atomicity::item_counter >, @@ -327,8 +327,8 @@ namespace cds { namespace intrusive { typedef cds::intrusive::OptimisticQueue< cds::gc::HP, Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::intrusive::OptimisticQueue< cds::gc::HP, Foo, - typename cds::intrusive::optimistic_queue::make_traits< + typedef cds::intrusive::OptimisticQueue< cds::gc::HP, Foo, + typename cds::intrusive::optimistic_queue::make_traits< cds::opt::stat< cds::intrusive::optimistic_queue::stat<> >, cds::opt::item_counter< cds::atomicity::item_counter > >::type @@ -651,7 +651,7 @@ namespace cds { namespace intrusive { /// Returns queue's item count /** - The value returned depends on \p optimistic_queue::traits::item_counter. + The value returned depends on \p optimistic_queue::traits::item_counter. For \p atomicity::empty_item_counter, this function always returns 0. @note Even if you use real item counter and it returns 0, this fact is not mean that the queue diff --git a/cds/intrusive/segmented_queue.h b/cds/intrusive/segmented_queue.h index 85a7796b..2e41c4e0 100644 --- a/cds/intrusive/segmented_queue.h +++ b/cds/intrusive/segmented_queue.h @@ -24,7 +24,7 @@ namespace cds { namespace intrusive { /// SegmentedQueue internal statistics. May be used for debugging or profiling template - struct stat + struct stat { typedef Counter counter_type; ///< Counter type diff --git a/cds/intrusive/split_list.h b/cds/intrusive/split_list.h index 62166ec5..8225b147 100644 --- a/cds/intrusive/split_list.h +++ b/cds/intrusive/split_list.h @@ -442,7 +442,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); // Initialize bucket 0 @@ -471,7 +471,7 @@ namespace cds { namespace intrusive { dummy_node_type * pHead = get_bucket( nHash ); assert( pHead != nullptr ); - return m_Stat.onFind( + return m_Stat.onFind( m_List.find_at( pHead, sv, cmp, [&f](value_type& item, split_list::details::search_value_type& val){ f(item, val.val ); }) ); diff --git a/cds/intrusive/split_list_nogc.h b/cds/intrusive/split_list_nogc.h index 18e1cc07..ec31ce19 100644 --- a/cds/intrusive/split_list_nogc.h +++ b/cds/intrusive/split_list_nogc.h @@ -237,7 +237,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); // Initialize bucket 0 diff --git a/cds/intrusive/split_list_rcu.h b/cds/intrusive/split_list_rcu.h index fa3bc86b..603500f5 100644 --- a/cds/intrusive/split_list_rcu.h +++ b/cds/intrusive/split_list_rcu.h @@ -334,7 +334,7 @@ namespace cds { namespace intrusive { static_assert( std::is_same::value, "GC and OrderedList::gc must be the same"); // atomicity::empty_item_counter is not allowed as a item counter - static_assert( !std::is_same::value, + static_assert( !std::is_same::value, "cds::atomicity::empty_item_counter is not allowed as a item counter"); // Initialize bucket 0 diff --git a/cds/intrusive/treiber_stack.h b/cds/intrusive/treiber_stack.h index 8c2897ce..89bc36d0 100644 --- a/cds/intrusive/treiber_stack.h +++ b/cds/intrusive/treiber_stack.h @@ -25,7 +25,7 @@ namespace cds { namespace intrusive { - Tag - a \ref cds_intrusive_hook_tag "tag" */ template - using node = cds::intrusive::single_link::node< GC, Tag > ; + using node = cds::intrusive::single_link::node< GC, Tag >; /// Base hook /** @@ -123,7 +123,7 @@ namespace cds { namespace intrusive { else ++m_PassivePopCollision; } - void onEliminationFailed() + void onEliminationFailed() { ++m_EliminationFailed; } @@ -160,7 +160,7 @@ namespace cds { namespace intrusive { typedef cds::atomicity::empty_item_counter item_counter; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -237,7 +237,7 @@ namespace cds { namespace intrusive { Example: declare \p %TreiberStack with elimination enabled and internal statistics \code - typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, + typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, typename cds::intrusive::treiber_stack::make_traits< cds::opt::enable_elimination< true >, cds::opt::stat< cds::intrusive::treiber_stack::stat<> > @@ -438,7 +438,7 @@ namespace cds { namespace intrusive { Template arguments: - \p GC - garbage collector type: \p gc::HP, \p gc::DHP. Garbage collecting schema must be the same as \p treiber_stack::node GC. - - \p T - a type the stack contains. A value of type \p T must be derived + - \p T - a type the stack contains. A value of type \p T must be derived from \p treiber_stack::node for \p treiber_stack::base_hook, or it should have a member of type \p %treiber_stack::node for \p treiber_stack::member_hook, or it should be convertible to \p %treiber_stack::node for \p treiber_stack::traits_hook. @@ -451,9 +451,9 @@ namespace cds { namespace intrusive { typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, myTraits > myStack; // Equivalent make_traits example: - typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, - typename cds::intrusive::treiber_stack::make_traits< - cds::opt::stat< cds::intrusive::treiber_stack::stat<> > + typedef cds::intrusive::TreiberStack< cds::gc::HP, Foo, + typename cds::intrusive::treiber_stack::make_traits< + cds::opt::stat< cds::intrusive::treiber_stack::stat<> > >::type > myStack; \endcode @@ -488,7 +488,7 @@ namespace cds { namespace intrusive { // Stack with elimination back-off enabled typedef ci::TreiberStack< gc, myData, - typename ci::treiber_stack::make_traits< + typename ci::treiber_stack::make_traits< ci::opt::hook< ci::treiber_stack::base_hook< gc > >, cds::opt::enable_elimination< true > >::type @@ -514,15 +514,15 @@ namespace cds { namespace intrusive { // ... }; - typedef ci::TreiberStack< gc, - myData, - typename ci::treiber_stack::make_traits< + typedef ci::TreiberStack< gc, + myData, + typename ci::treiber_stack::make_traits< ci::opt::hook< ci::treiber_stack::base_hook< gc, tag1 > > - >::type + >::type > stack1_t; - typedef ci::TreiberStack< gc, - myData, + typedef ci::TreiberStack< gc, + myData, typename ci::treiber_stack::make_traits< ci::opt::hook< ci::treiber_stack::base_hook< gc, tag2 > > >::type @@ -565,7 +565,7 @@ namespace cds { namespace intrusive { // ... }; - typedef ci::TreiberStack< gc, + typedef ci::TreiberStack< gc, myData, typename ci::treiber_stack::make_traits< ci::opt::hook< ci::treiber_stack::member_hook< offsetof(myData, member_hook_), gc >> @@ -574,9 +574,9 @@ namespace cds { namespace intrusive { \endcode */ template < - typename GC, - typename T, - typename Traits = treiber_stack::traits + typename GC, + typename T, + typename Traits = treiber_stack::traits > class TreiberStack { diff --git a/cds/intrusive/tsigas_cycle_queue.h b/cds/intrusive/tsigas_cycle_queue.h index 2542fbee..20981f75 100644 --- a/cds/intrusive/tsigas_cycle_queue.h +++ b/cds/intrusive/tsigas_cycle_queue.h @@ -37,7 +37,7 @@ namespace cds { namespace intrusive { typedef atomicity::empty_item_counter item_counter; /// C++ memory ordering model - /** + /** Can be \p opt::v::relaxed_ordering (relaxed memory model, the default) or \p opt::v::sequential_consistent (sequentially consisnent memory model). */ @@ -64,7 +64,7 @@ namespace cds { namespace intrusive { Example: declare \p %TsigasCycleQueue with item counting and static iternal buffer of size 1024: \code - typedef cds::intrusive::TsigasCycleQueue< Foo, + typedef cds::intrusive::TsigasCycleQueue< Foo, typename cds::intrusive::tsigas_queue::make_traits< cds::opt::buffer< cds::opt::v::static_buffer< void *, 1024 >, cds::opt::item_counte< cds::atomicity::item_counter > @@ -108,8 +108,8 @@ namespace cds { namespace intrusive { typedef cds::intrusive::TsigasCycleQueue< Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::intrusive::TsigasCycleQueue< Foo, - typename cds::intrusive::tsigas_queue::make_traits< + typedef cds::intrusive::TsigasCycleQueue< Foo, + typename cds::intrusive::tsigas_queue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter > >::type > myQueue; @@ -406,7 +406,7 @@ namespace cds { namespace intrusive { /// Returns queue's item count /** - The value returned depends on \p tsigas_queue::traits::item_counter. + The value returned depends on \p tsigas_queue::traits::item_counter. For \p atomicity::empty_item_counter, the function always returns 0. */ size_t size() const CDS_NOEXCEPT diff --git a/cds/intrusive/vyukov_mpmc_cycle_queue.h b/cds/intrusive/vyukov_mpmc_cycle_queue.h index 267aa166..3b4ccdd0 100644 --- a/cds/intrusive/vyukov_mpmc_cycle_queue.h +++ b/cds/intrusive/vyukov_mpmc_cycle_queue.h @@ -26,7 +26,7 @@ namespace cds { namespace intrusive { - \p opt::buffer - the buffer type for internal cyclic array. Possible types are: \p opt::v::dynamic_buffer (the default), \p opt::v::static_buffer. The type of element in the buffer is not important: it will be changed via \p rebind metafunction. - - \p opt::disposer - the functor used for dispose removed items. Default is \p opt::v::empty_disposer. + - \p opt::disposer - the functor used for dispose removed items. Default is \p opt::v::empty_disposer. This option is used only in \p clear() member function. - \p opt::item_counter - the type of item counting feature. Default is \p cds::atomicity::empty_item_counter (item counting disabled) To enable item counting use \p cds::atomicity::item_counter @@ -36,7 +36,7 @@ namespace cds { namespace intrusive { Example: declare \p %VyukovMPMCCycleQueue with item counting and static iternal buffer of size 1024: \code - typedef cds::intrusive::VyukovMPMCCycleQueue< Foo, + typedef cds::intrusive::VyukovMPMCCycleQueue< Foo, typename cds::intrusive::vyukov_queue::make_traits< cds::opt::buffer< cds::opt::v::static_buffer< void *, 1024 >, cds::opt::item_counte< cds::atomicity::item_counter > @@ -75,8 +75,8 @@ namespace cds { namespace intrusive { typedef cds::intrusive::VyukovMPMCCycleQueue< Foo, myTraits > myQueue; // Equivalent make_traits example: - typedef cds::intrusive::VyukovMPMCCycleQueue< cds::gc::HP, Foo, - typename cds::intrusive::vykov_queue::make_traits< + typedef cds::intrusive::VyukovMPMCCycleQueue< cds::gc::HP, Foo, + typename cds::intrusive::vykov_queue::make_traits< cds::opt::item_counter< cds::atomicity::item_counter > >::type > myQueue; diff --git a/tests/test-hdr/deque/hdr_fcdeque.cpp b/tests/test-hdr/deque/hdr_fcdeque.cpp index ec8dd0ff..9faf9070 100644 --- a/tests/test-hdr/deque/hdr_fcdeque.cpp +++ b/tests/test-hdr/deque/hdr_fcdeque.cpp @@ -112,7 +112,7 @@ namespace deque { void fcDeque_mutex() { - struct deque_traits : public + struct deque_traits : public cds::container::fcdeque::make_traits< cds::opt::enable_elimination< true > >::type diff --git a/tests/test-hdr/ordered_list/hdr_intrusive_lazy_nogc.cpp b/tests/test-hdr/ordered_list/hdr_intrusive_lazy_nogc.cpp index 9d32b291..6606ebee 100644 --- a/tests/test-hdr/ordered_list/hdr_intrusive_lazy_nogc.cpp +++ b/tests/test-hdr/ordered_list/hdr_intrusive_lazy_nogc.cpp @@ -18,7 +18,7 @@ namespace ordlist { void IntrusiveLazyListHeaderTest::nogc_base_less() { typedef base_int_item< cds::gc::nogc > item; - struct traits: public + struct traits: public ci::lazy_list::make_traits< ci::opt::hook< ci::lazy_list::base_hook< co::gc > > ,co::less< less > diff --git a/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp b/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp index c64ccc01..c0accb30 100644 --- a/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp +++ b/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp @@ -36,7 +36,7 @@ namespace queue { void HdrTestQueue::BasketQueue_DHP_Counted_relax() { - typedef cds::container::BasketQueue< cds::gc::DHP, int, + typedef cds::container::BasketQueue< cds::gc::DHP, int, typename cds::container::basket_queue::make_traits < cds::opt::item_counter< cds::atomicity::item_counter > ,cds::opt::memory_model< cds::opt::v::relaxed_ordering> diff --git a/tests/test-hdr/queue/hdr_basketqueue_hp.cpp b/tests/test-hdr/queue/hdr_basketqueue_hp.cpp index 3d5f7ded..fcc0e2c7 100644 --- a/tests/test-hdr/queue/hdr_basketqueue_hp.cpp +++ b/tests/test-hdr/queue/hdr_basketqueue_hp.cpp @@ -36,7 +36,7 @@ namespace queue { void HdrTestQueue::BasketQueue_HP_Counted_relax() { - typedef cds::container::BasketQueue< cds::gc::HP, int, + typedef cds::container::BasketQueue< cds::gc::HP, int, typename cds::container::basket_queue::make_traits < cds::opt::item_counter< cds::atomicity::item_counter > ,cds::opt::memory_model< cds::opt::v::relaxed_ordering> diff --git a/tests/test-hdr/queue/hdr_fcqueue.cpp b/tests/test-hdr/queue/hdr_fcqueue.cpp index 00576abd..3759b621 100644 --- a/tests/test-hdr/queue/hdr_fcqueue.cpp +++ b/tests/test-hdr/queue/hdr_fcqueue.cpp @@ -72,7 +72,7 @@ namespace queue { void HdrFCQueue::FCQueue_list_stat() { - struct queue_traits : public cds::container::fcqueue::traits + struct queue_traits : public cds::container::fcqueue::traits { typedef cds::container::fcqueue::stat<> stat; }; diff --git a/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp index cf10659e..a7c45e50 100644 --- a/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp +++ b/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp @@ -28,7 +28,7 @@ namespace queue { typedef ci::BasketQueue< cds::gc::DHP, member_hook_item, traits_BasketQueue_member >BasketQueue_DHP_member; /// DHP base hook + item counter - typedef ci::BasketQueue< cds::gc::DHP, base_hook_item, + typedef ci::BasketQueue< cds::gc::DHP, base_hook_item, typename ci::basket_queue::make_traits< ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer > ,ci::opt::hook< diff --git a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp index 34bf0b86..13210240 100644 --- a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp +++ b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp @@ -52,7 +52,7 @@ namespace queue { typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item, traits_OptimisticQueue_DHP_member > OptimisticQueue_DHP_member; /// DHP base hook + item counter - typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item, + typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item, typename ci::optimistic_queue::make_traits< ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer > ,ci::opt::hook< @@ -63,7 +63,7 @@ namespace queue { > OptimisticQueue_DHP_base_ic; // DHP member hook + item counter - typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item, + typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item, typename ci::optimistic_queue::make_traits< cds::opt::type_traits< traits_OptimisticQueue_DHP_member > ,co::item_counter< cds::atomicity::item_counter > diff --git a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp index cd5bbc05..d11714fe 100644 --- a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp +++ b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp @@ -75,7 +75,7 @@ namespace queue { typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item, traits_OptimisticQueue_HP_member > OptimisticQueue_HP_member; /// HP base hook + item counter - typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item, + typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item, typename ci::optimistic_queue::make_traits< ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer > ,ci::opt::hook< @@ -86,7 +86,7 @@ namespace queue { > OptimisticQueue_HP_base_ic; // HP member hook + item counter - typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item, + typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item, typename ci::optimistic_queue::make_traits< cds::opt::type_traits< traits_OptimisticQueue_HP_member > ,co::item_counter< cds::atomicity::item_counter > diff --git a/tests/test-hdr/set/hdr_intrusive_splitlist_set_hp_lazy.cpp b/tests/test-hdr/set/hdr_intrusive_splitlist_set_hp_lazy.cpp index a43baeac..a122feea 100644 --- a/tests/test-hdr/set/hdr_intrusive_splitlist_set_hp_lazy.cpp +++ b/tests/test-hdr/set/hdr_intrusive_splitlist_set_hp_lazy.cpp @@ -303,7 +303,7 @@ namespace set { ,co::item_counter< simple_item_counter > ,ci::split_list::dynamic_bucket_table >::type - { + { typedef ci::split_list::stat<> stat; }; typedef ci::SplitListSet< cds::gc::HP, ord_list, set_traits > set; diff --git a/tests/test-hdr/stack/hdr_elimination_stack_dhp.cpp b/tests/test-hdr/stack/hdr_elimination_stack_dhp.cpp index fb5323e7..b1cc0582 100644 --- a/tests/test-hdr/stack/hdr_elimination_stack_dhp.cpp +++ b/tests/test-hdr/stack/hdr_elimination_stack_dhp.cpp @@ -12,8 +12,8 @@ namespace stack { namespace defs { namespace { typedef cs::TreiberStack< cds::gc::DHP, int - ,typename cs::treiber_stack::make_traits< - cds::opt::enable_elimination + ,typename cs::treiber_stack::make_traits< + cds::opt::enable_elimination >::type > Elimination_DHP; diff --git a/tests/test-hdr/stack/hdr_treiber_stack_dhp.cpp b/tests/test-hdr/stack/hdr_treiber_stack_dhp.cpp index 6b8da9a5..ae37fb97 100644 --- a/tests/test-hdr/stack/hdr_treiber_stack_dhp.cpp +++ b/tests/test-hdr/stack/hdr_treiber_stack_dhp.cpp @@ -13,13 +13,13 @@ namespace stack { typedef cs::TreiberStack< cds::gc::DHP, int > Treiber_DHP; typedef cs::TreiberStack< cds::gc::DHP, int , typename cs::treiber_stack::make_traits< - cds::opt::memory_model + cds::opt::memory_model >::type > Treiber_DHP_relaxed; typedef cs::TreiberStack< cds::gc::DHP, int , typename cs::treiber_stack::make_traits< - cds::opt::back_off< cds::backoff::yield> + cds::opt::back_off< cds::backoff::yield> >::type > Treiber_DHP_yield; diff --git a/tests/test-hdr/stack/hdr_treiber_stack_hp.cpp b/tests/test-hdr/stack/hdr_treiber_stack_hp.cpp index aafc28e0..1dc08d4a 100644 --- a/tests/test-hdr/stack/hdr_treiber_stack_hp.cpp +++ b/tests/test-hdr/stack/hdr_treiber_stack_hp.cpp @@ -14,13 +14,13 @@ namespace stack { typedef cs::TreiberStack< cds::gc::HP, int > Treiber_HP; typedef cs::TreiberStack< cds::gc::HP, int , typename cs::treiber_stack::make_traits< - cds::opt::memory_model + cds::opt::memory_model >::type > Treiber_HP_relaxed; typedef cs::TreiberStack< cds::gc::HP, int , typename cs::treiber_stack::make_traits< - cds::opt::back_off< cds::backoff::yield> + cds::opt::back_off< cds::backoff::yield> >::type > Treiber_HP_yield; diff --git a/tests/unit/map2/map_delodd.cpp b/tests/unit/map2/map_delodd.cpp index 382a63e0..4eb1512d 100644 --- a/tests/unit/map2/map_delodd.cpp +++ b/tests/unit/map2/map_delodd.cpp @@ -102,9 +102,9 @@ namespace std { } // namespace std namespace boost { - inline size_t hash_value( map2::key_thread const& k ) - { - return std::hash()( k.nKey ); + inline size_t hash_value( map2::key_thread const& k ) + { + return std::hash()( k.nKey ); } template <> struct hash diff --git a/tests/unit/queue/intrusive_queue_type.h b/tests/unit/queue/intrusive_queue_type.h index 67334396..a87226c4 100644 --- a/tests/unit/queue/intrusive_queue_type.h +++ b/tests/unit/queue/intrusive_queue_type.h @@ -181,7 +181,7 @@ namespace queue { typedef cds::intrusive::OptimisticQueue< cds::gc::DHP, T, traits_OptimisticQueue_DHP_seqcst > OptimisticQueue_DHP_seqcst; // OptimisticQueue + item counter - struct traits_OptimisticQueue_HP_ic: public + struct traits_OptimisticQueue_HP_ic: public cds::intrusive::optimistic_queue::make_traits < cds::intrusive::opt::hook< cds::intrusive::optimistic_queue::base_hook< cds::opt::gc< cds::gc::HP > > > , cds::opt::item_counter< cds::atomicity::item_counter > @@ -198,7 +198,7 @@ namespace queue { typedef cds::intrusive::OptimisticQueue< cds::gc::DHP, T, traits_OptimisticQueue_DHP_ic > OptimisticQueue_DHP_ic; // OptimisticQueue + stat - struct traits_OptimisticQueue_HP_stat: public + struct traits_OptimisticQueue_HP_stat: public cds::intrusive::optimistic_queue::make_traits < cds::intrusive::opt::hook< cds::intrusive::optimistic_queue::base_hook< cds::opt::gc< cds::gc::HP > > > , cds::opt::stat< cds::intrusive::optimistic_queue::stat<> > @@ -206,7 +206,7 @@ namespace queue { {}; typedef cds::intrusive::OptimisticQueue< cds::gc::HP, T, traits_OptimisticQueue_HP_stat > OptimisticQueue_HP_stat; - struct traits_OptimisticQueue_DHP_stat: public + struct traits_OptimisticQueue_DHP_stat: public cds::intrusive::optimistic_queue::make_traits < cds::intrusive::opt::hook< cds::intrusive::optimistic_queue::base_hook< cds::opt::gc< cds::gc::DHP > > > , cds::opt::stat< cds::intrusive::optimistic_queue::stat<> > @@ -216,7 +216,7 @@ namespace queue { // TsigasCycleQueue class TsigasCycleQueue_dyn - : public cds::intrusive::TsigasCycleQueue< T, + : public cds::intrusive::TsigasCycleQueue< T, typename cds::intrusive::tsigas_queue::make_traits< cds::opt::buffer< cds::opt::v::dynamic_buffer< int > > >::type @@ -323,7 +323,7 @@ namespace queue { {}; typedef cds::intrusive::BasketQueue< cds::gc::HP, T, traits_BasketQueue_HP > BasketQueue_HP; - struct traits_BasketQueue_HP_seqcst: public + struct traits_BasketQueue_HP_seqcst: public cds::intrusive::basket_queue::make_traits < cds::intrusive::opt::hook< cds::intrusive::basket_queue::base_hook< cds::opt::gc< cds::gc::HP > > > , cds::opt::memory_model< cds::opt::v::sequential_consistent > @@ -338,7 +338,7 @@ namespace queue { {}; typedef cds::intrusive::BasketQueue< cds::gc::DHP, T, traits_BasketQueue_DHP > BasketQueue_DHP; - struct traits_BasketQueue_DHP_seqcst: public + struct traits_BasketQueue_DHP_seqcst: public cds::intrusive::basket_queue::make_traits < cds::intrusive::opt::hook< cds::intrusive::basket_queue::base_hook< cds::opt::gc< cds::gc::DHP > > > , cds::opt::memory_model< cds::opt::v::sequential_consistent > diff --git a/tests/unit/queue/queue_type.h b/tests/unit/queue/queue_type.h index 7e6050ca..947c5482 100644 --- a/tests/unit/queue/queue_type.h +++ b/tests/unit/queue/queue_type.h @@ -136,7 +136,7 @@ namespace queue { typedef cds::container::MoirQueue< cds::gc::DHP, Value, traits_MSQueue_ic > MoirQueue_DHP_ic; // MSQueue + stat - struct traits_MSQueue_stat: public + struct traits_MSQueue_stat: public cds::container::msqueue::make_traits < cds::opt::stat< cds::container::msqueue::stat<> > >::type @@ -377,7 +377,7 @@ namespace queue { }; typedef cds::container::RWQueue< Value, traits_RWQueue_Spin_ic > RWQueue_Spin_ic; - struct traits_RWQueue_mutex : public + struct traits_RWQueue_mutex : public cds::container::rwqueue::make_traits< cds::opt::lock_type< std::mutex > >::type diff --git a/tests/unit/set2/set_types.h b/tests/unit/set2/set_types.h index 568f26e3..1b6daf80 100644 --- a/tests/unit/set2/set_types.h +++ b/tests/unit/set2/set_types.h @@ -412,7 +412,7 @@ namespace set2 { typedef cc::MichaelHashSet< rcu_sht, MichaelList_RCU_SHT_less_stdAlloc_seqcst, traits_MichaelSet_stdAlloc > MichaelSet_RCU_SHT_less_stdAlloc_seqcst; #endif - struct traits_MichaelSet_michaelAlloc : + struct traits_MichaelSet_michaelAlloc : public cc::michael_set::make_traits< co::hash< hash >, co::allocator< memory::MichaelAllocator > diff --git a/tests/unit/stack/stack_type.h b/tests/unit/stack/stack_type.h index 074a153d..45d2167c 100644 --- a/tests/unit/stack/stack_type.h +++ b/tests/unit/stack/stack_type.h @@ -120,9 +120,9 @@ namespace stack { typedef cds::container::TreiberStack< cds::gc::HP, T > Treiber_HP; typedef cds::container::TreiberStack< cds::gc::DHP, T > Treiber_DHP; - struct traits_Treiber_seqcst: public - cds::container::treiber_stack::make_traits< - cds::opt::memory_model + struct traits_Treiber_seqcst: public + cds::container::treiber_stack::make_traits< + cds::opt::memory_model >::type {}; typedef cds::container::TreiberStack< cds::gc::HP, T, traits_Treiber_seqcst > Treiber_HP_seqcst; @@ -270,7 +270,7 @@ namespace stack { typedef cds::container::TreiberStack< cds::gc::HP, T, traits_Elimination_dyn_stat > Elimination_HP_dyn_stat; typedef cds::container::TreiberStack< cds::gc::DHP, T, traits_Elimination_dyn_stat > Elimination_DHP_dyn_stat; - struct traits_Elimination_yield: public + struct traits_Elimination_yield: public cds::container::treiber_stack::make_traits < cds::opt::enable_elimination , cds::opt::back_off @@ -280,7 +280,7 @@ namespace stack { typedef cds::container::TreiberStack< cds::gc::HP, T, traits_Elimination_yield > Elimination_HP_yield; typedef cds::container::TreiberStack< cds::gc::DHP, T, traits_Elimination_yield > Elimination_DHP_yield; - struct traits_Elimination_pause: public + struct traits_Elimination_pause: public cds::container::treiber_stack::make_traits < cds::opt::enable_elimination , cds::opt::back_off @@ -289,7 +289,7 @@ namespace stack { typedef cds::container::TreiberStack< cds::gc::HP, T, traits_Elimination_pause > Elimination_HP_pause; typedef cds::container::TreiberStack< cds::gc::DHP, T, traits_Elimination_pause > Elimination_DHP_pause; - struct traits_Elimination_exp: public + struct traits_Elimination_exp: public cds::container::treiber_stack::make_traits < cds::opt::enable_elimination ,cds::opt::back_off< -- 2.34.1