//@cond
template <class Base> struct pack: public Base
{
- static CDS_CONSTEXPR_CONST bool enable_elimination = Enable;
+ static CDS_CONSTEXPR const bool enable_elimination = Enable;
};
//@endcond
};
#define CDS_CXX11_INLINE_NAMESPACE_SUPPORT
#define CDS_CONSTEXPR constexpr
-#define CDS_CONSTEXPR_CONST constexpr const
#define CDS_NOEXCEPT_SUPPORT noexcept
#define CDS_NOEXCEPT_SUPPORT_(expr) noexcept(expr)
// noexcept
#define CDS_NOEXCEPT_SUPPORT noexcept
#define CDS_NOEXCEPT_SUPPORT_(expr) noexcept(expr)
-#define CDS_CONSTEXPR_CONST constexpr const
// C++11 thread_local keyword
#define CDS_CXX11_THREAD_LOCAL_SUPPORT
#endif
#define CDS_CONSTEXPR constexpr
-#define CDS_CONSTEXPR_CONST constexpr const
#define CDS_NOEXCEPT_SUPPORT noexcept
#define CDS_NOEXCEPT_SUPPORT_(expr) noexcept(expr)
// constexpr is not yet supported
#define CDS_CONSTEXPR
-#define CDS_CONSTEXPR_CONST const
// noexcept is not yet supported
//#define CDS_NOEXCEPT_SUPPORT noexcept
typedef typename base_class::node_allocator node_allocator ; ///< Internal node allocator
typedef typename base_class::update_desc_allocator update_desc_allocator ; ///< Update descriptor allocator
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
protected:
//@cond
typedef typename base_class::node_allocator node_allocator ; ///< Internal node allocator
typedef typename base_class::update_desc_allocator update_desc_allocator ; ///< Update descriptor allocator
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions do not require external locking
protected:
//@cond
typedef Traits traits; ///< Deque type traits
typedef typename traits::stat stat; ///< Internal statistics type
- static CDS_CONSTEXPR_CONST bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
+ static CDS_CONSTEXPR const bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
protected:
//@cond
struct traits: public cds::algo::flat_combining::type_traits
{
typedef empty_stat stat; ///< Internal statistics
- static CDS_CONSTEXPR_CONST bool enable_elimination = false; ///< Enable \ref cds_elimination_description "elimination"
+ static CDS_CONSTEXPR const bool enable_elimination = false; ///< Enable \ref cds_elimination_description "elimination"
};
/// Metafunction converting option list to traits
typedef Traits traits; ///< Queue type traits
typedef typename traits::stat stat; ///< Internal statistics type
- static CDS_CONSTEXPR_CONST bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
+ static CDS_CONSTEXPR const bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
protected:
//@cond
typedef Traits traits; ///< Stack traits
typedef typename traits::stat stat; ///< Internal statistics type
- static CDS_CONSTEXPR_CONST bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
+ static CDS_CONSTEXPR const bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
protected:
//@cond
typedef typename base_class::rcu_check_deadlock rcu_check_deadlock ; ///< RCU deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
protected:
//@cond
typedef typename base_class::rcu_check_deadlock rcu_check_deadlock ; ///< Deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
protected:
//@cond
typedef typename base_class::rcu_check_deadlock rcu_check_deadlock ; ///< RCU deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
protected:
//@cond
typedef typename base_class::rcu_check_deadlock rcu_check_deadlock ; ///< RCU deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal; ///< Group of \p extract_xxx functions require external locking
protected:
//@cond
typedef typename bucket_type::rcu_lock rcu_lock ; ///< RCU scoped lock
typedef typename bucket_type::exempt_ptr exempt_ptr ; ///< pointer to extracted node
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
protected:
item_counter m_ItemCounter ; ///< Item counter
typedef typename bucket_type::rcu_lock rcu_lock ; ///< RCU scoped lock
typedef typename bucket_type::exempt_ptr exempt_ptr ; ///< pointer to extracted node
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
protected:
item_counter m_ItemCounter ; ///< Item counter
typedef typename base_class::stat stat; ///< Internal statistics policy used
typedef typename base_class::memory_model memory_model; ///< Memory ordering. See \p cds::opt::memory_model option
- static CDS_CONSTEXPR_CONST size_t c_nHazardPtrCount = base_class::c_nHazardPtrCount; ///< Count of hazard pointer required for the algorithm
+ static CDS_CONSTEXPR const size_t c_nHazardPtrCount = base_class::c_nHazardPtrCount; ///< Count of hazard pointer required for the algorithm
protected:
//@cond
public:
typedef typename base_class::rcu_lock rcu_lock; ///< RCU scoped lock
/// Group of \p extract_xxx functions do not require external locking
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
/// pointer to extracted node
typedef cds::urcu::exempt_ptr< gc, node_type, value_type, typename maker::intrusive_type_traits::disposer > exempt_ptr;
public:
typedef typename base_class::rcu_lock rcu_lock; ///< RCU scoped lock
/// Group of \p extract_xxx functions do not require external locking
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
/// pointer to extracted node
typedef cds::urcu::exempt_ptr< gc, node_type, value_type, typename maker::intrusive_type_traits::disposer > exempt_ptr;
typedef typename base_class::rcu_lock rcu_lock ; ///< RCU scoped lock
typedef typename base_class::exempt_ptr exempt_ptr ; ///< pointer to extracted node
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
protected:
//@cond
typedef typename base_class::rcu_lock rcu_lock ; ///< RCU scoped lock
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = base_class::c_bExtractLockExternal;
protected:
//@cond
///@{
/// Enable elimination back-off; by default, it is disabled
- static CDS_CONSTEXPR_CONST bool enable_elimination = false;
+ static CDS_CONSTEXPR const bool enable_elimination = false;
/// Back-off strategy to wait for elimination, default is cds::backoff::delay<>
typedef cds::backoff::delay<> elimination_backoff;
{
typedef cds::intrusive::treiber_stack::base_hook< cds::opt::gc<gc> > hook;
typedef node_deallocator disposer;
- static CDS_CONSTEXPR_CONST opt::link_check_type link_checker = cds::intrusive::treiber_stack::traits::link_checker;
+ static CDS_CONSTEXPR const opt::link_check_type link_checker = cds::intrusive::treiber_stack::traits::link_checker;
};
// Result of metafunction
public:
typedef T value_type ; ///< type of value the class points to
typedef T * pointer_type ; ///< type of pointer
- static CDS_CONSTEXPR_CONST uintptr_t bitmask = Bitmask ; ///< bitfield bitmask
- static CDS_CONSTEXPR_CONST uintptr_t pointer_bitmask = ~bitmask ; ///< pointer bitmask
+ static CDS_CONSTEXPR const uintptr_t bitmask = Bitmask; ///< bitfield bitmask
+ static CDS_CONSTEXPR const uintptr_t pointer_bitmask = ~bitmask; ///< pointer bitmask
public:
/// Constructs null marked pointer. The flag is cleared.
typedef typename gc::scoped_lock rcu_lock; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = false; ///< Group of \p extract_xxx functions do not require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = false; ///< Group of \p extract_xxx functions do not require external locking
protected:
//@cond
{
typedef cds::intrusive::opt::v::empty_disposer disposer ; ///< Disposer to erase removed elements. Used only in \p FCQueue::clear() function
typedef empty_stat stat; ///< Internal statistics
- static CDS_CONSTEXPR_CONST bool enable_elimination = false; ///< Enable \ref cds_elimination_description "elimination"
+ static CDS_CONSTEXPR const bool enable_elimination = false; ///< Enable \ref cds_elimination_description "elimination"
};
/// Metafunction converting option list to traits
typedef typename traits::disposer disposer; ///< The disposer functor. The disposer is used only in \ref clear() function
typedef typename traits::stat stat; ///< Internal statistics type
- static CDS_CONSTEXPR_CONST bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
+ static CDS_CONSTEXPR const bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
protected:
//@cond
typedef typename traits::disposer disposer; ///< The disposer functor. The disposer is used only in \ref clear() function
typedef typename traits::stat stat; ///< Internal statistics type
- static CDS_CONSTEXPR_CONST bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
+ static CDS_CONSTEXPR const bool c_bEliminationEnabled = traits::enable_elimination; ///< \p true if elimination is enabled
protected:
//@cond
typedef typename options::rcu_check_deadlock rcu_check_deadlock ; ///< Deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = true; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = true; ///< Group of \p extract_xxx functions require external locking
//@cond
// Rebind options (split-list support)
typedef typename options::rcu_check_deadlock rcu_check_deadlock ; ///< Deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = true; ///< Group of \p extract_xxx functions require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = true; ///< Group of \p extract_xxx functions require external locking
//@cond
// Rebind options (split-list support)
typedef typename bucket_type::rcu_lock rcu_lock ; ///< RCU scoped lock
typedef typename bucket_type::exempt_ptr exempt_ptr ; ///< pointer to extracted node
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = bucket_type::c_bExtractLockExternal;
protected:
item_counter m_ItemCounter ; ///< Item counter
typedef typename options::stat stat ; ///< internal statistics type
typedef typename options::rcu_check_deadlock rcu_check_deadlock ; ///< Deadlock checking policy
typedef typename gc::scoped_lock rcu_lock ; ///< RCU scoped lock
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = false; ///< Group of \p extract_xxx functions does not require external locking
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = false; ///< Group of \p extract_xxx functions does not require external locking
/// Max node height. The actual node height should be in range <tt>[0 .. c_nMaxHeight)</tt>
typedef typename ordered_list::rcu_lock rcu_lock ; ///< RCU scoped lock
typedef typename ordered_list::exempt_ptr exempt_ptr ; ///< pointer to extracted node
/// Group of \p extract_xxx functions require external locking if underlying ordered list requires that
- static CDS_CONSTEXPR_CONST bool c_bExtractLockExternal = ordered_list::c_bExtractLockExternal;
+ static CDS_CONSTEXPR const bool c_bExtractLockExternal = ordered_list::c_bExtractLockExternal;
typedef typename options::item_counter item_counter ; ///< Item counter type
typedef typename options::back_off back_off ; ///< back-off strategy for spinning
typedef treiber_stack::empty_stat stat;
/// Link checking, see \p cds::opt::link_checker
- static CDS_CONSTEXPR_CONST opt::link_check_type link_checker = opt::debug_check_link;
+ static CDS_CONSTEXPR const opt::link_check_type link_checker = opt::debug_check_link;
/** @name Elimination back-off traits
The following traits is used only if elimination enabled
///@{
/// Enable elimination back-off; by default, it is disabled
- static CDS_CONSTEXPR_CONST bool enable_elimination = false;
+ static CDS_CONSTEXPR const bool enable_elimination = false;
/// Back-off strategy to wait for elimination, default is cds::backoff::delay<>
typedef cds::backoff::delay<> elimination_backoff;
public: // related to elimination back-off
/// Elimination back-off is enabled or not
- static CDS_CONSTEXPR_CONST bool enable_elimination = traits::enable_elimination;
+ static CDS_CONSTEXPR const bool enable_elimination = traits::enable_elimination;
/// back-off strategy used to wait for elimination
typedef typename traits::elimination_backoff elimination_backoff_type;
/// Lock type used in elimination back-off
{
public:
typedef T value_type ; ///< Value type
- static CDS_CONSTEXPR_CONST bool c_bExp2 = Exp2; ///< \p Exp2 flag
+ static CDS_CONSTEXPR const bool c_bExp2 = Exp2; ///< \p Exp2 flag
/// Rebind buffer for other template parameters
template <typename Q, typename Alloc2=Alloc, bool Exp22 = c_bExp2>
PREDEFINED = CDS_BUILD_BITS=64 \
CDS_DOXYGEN_INVOKED \
- cds_std=std \
CDS_URCU_SIGNAL_HANDLING_ENABLED \
CDS_CXX11_INLINE_NAMESPACE_SUPPORT \
CDS_CXX11_INLINE_NAMESPACE=inline \
- CDS_CXX11_DECLTYPE_SUPPORT \
CDS_NOEXCEPT=noexcept() \
- CDS_CONSTEXPR=constexpr \
- CDS_CONSTEXPR_CONST="constexpr const" \
- CDS_ATOMIC=std \
- CDS_DELETE_SPECIFIER="=delete"\
- CDS_DEFAULT_SPECIFIER="=default"
+ CDS_CONSTEXPR=constexpr
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
protected:
size_t m_nThreadPushCount;
atomics::atomic<size_t> m_nProducerCount;
- static CDS_CONSTEXPR_CONST size_t c_nBadConsumer = 0xbadc0ffe;
+ static CDS_CONSTEXPR const size_t c_nBadConsumer = 0xbadc0ffe;
protected:
template <class Queue>
class IntrusiveStack_PushPop: public CppUnitMini::TestCase
{
atomics::atomic<size_t> m_nWorkingProducers;
- static CDS_CONSTEXPR_CONST size_t c_nValArraySize = 1024;
- static CDS_CONSTEXPR_CONST size_t c_nBadConsumer = 0xbadc0ffe;
+ static CDS_CONSTEXPR const size_t c_nValArraySize = 1024;
+ static CDS_CONSTEXPR const size_t c_nBadConsumer = 0xbadc0ffe;
template <class Stack>
class Producer: public CppUnitMini::TestThread