fix type in docs
[libcds.git] / cds / intrusive / vyukov_mpmc_cycle_queue.h
index be6c48d5a4777bbdca6117c6496a3f24a93f8a97..03382df37a2496ed9b8f784a459420c84acbb60e 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef __CDS_INTRUSIVE_VYUKOV_MPMC_CYCLE_QUEUE_H
 #define __CDS_INTRUSIVE_VYUKOV_MPMC_CYCLE_QUEUE_H
 
-#include <cds/intrusive/base.h>
+#include <cds/intrusive/details/base.h>
 #include <cds/container/vyukov_mpmc_cycle_queue.h>
 
 namespace cds { namespace intrusive {
@@ -54,12 +54,12 @@ namespace cds { namespace intrusive {
 
         \endcode
     */
-    template <typename T, CDS_DECL_OPTIONS6>
+    template <typename T, typename... Options>
     class VyukovMPMCCycleQueue
-        : private container::VyukovMPMCCycleQueue< T *, CDS_OPTIONS6 >
+        : private container::VyukovMPMCCycleQueue< T *, Options... >
     {
         //@cond
-        typedef container::VyukovMPMCCycleQueue< T *, CDS_OPTIONS6 > base_class;
+        typedef container::VyukovMPMCCycleQueue< T *, Options... > base_class;
         //@endcond
     public:
         typedef T value_type    ;   ///< type of data stored in the queue
@@ -73,9 +73,9 @@ namespace cds { namespace intrusive {
 
     public:
         /// Rebind template arguments
-        template <typename T2, CDS_DECL_OTHER_OPTIONS6>
+        template <typename T2, typename... Options2>
         struct rebind {
-            typedef VyukovMPMCCycleQueue< T2, CDS_OTHER_OPTIONS6> other   ;   ///< Rebinding result
+            typedef VyukovMPMCCycleQueue< T2, Options2...> other   ;   ///< Rebinding result
         };
 
     public:
@@ -98,12 +98,12 @@ namespace cds { namespace intrusive {
 
         /// Dequeues an item from queue
         /**
-            If queue is empty, returns \p NULL.
+            If queue is empty, returns \p nullptr.
         */
         value_type * dequeue()
         {
-            value_type * p = null_ptr<value_type *>();
-            return base_class::dequeue( p ) ? p : null_ptr<value_type *>();
+            value_type * p = nullptr;
+            return base_class::dequeue( p ) ? p : nullptr;
         }
 
         /// Synonym of \ref enqueue
@@ -127,15 +127,15 @@ namespace cds { namespace intrusive {
                 void operator ()( T * val );
             };
             \endcode
-            You can pass \p disposer by reference using \p boost::ref.
+            You can pass \p disposer by reference using \p std::ref.
             The disposer will be called immediately for each item.
         */
         template <typename Disposer>
         void clear( Disposer f )
         {
             value_type * pv;
-            while ( (pv = pop()) != null_ptr<value_type *>() ) {
-                unref(f)( pv );
+            while ( (pv = pop()) != nullptr ) {
+                f( pv );
             }
         }