void retire_node( node_type * pNode )
{
- assert( pNode != null_ptr<node_type *>() );
+ assert( pNode != nullptr );
gc::template retire<clean_disposer>( node_traits::to_value_ptr( *pNode ) );
}
//@endcond
void next()
{
- assert( m_pNode != null_ptr<value_type *>() );
+ assert( m_pNode != nullptr );
if ( m_pNode ) {
typename gc::Guard g;
node_type * pCur = node_traits::to_node_ptr( m_pNode );
- if ( pCur->m_pNext.load(memory_model::memory_order_relaxed).ptr() != null_ptr<node_type *>() ) { // if pCur is not tail node
+ if ( pCur->m_pNext.load( memory_model::memory_order_relaxed ).ptr() != nullptr ) { // if pCur is not tail node
node_type * pNext;
do {
pNext = pCur->m_pNext.load(memory_model::memory_order_relaxed).ptr();
void skip_deleted()
{
- if ( m_pNode != null_ptr<value_type *>() ) {
+ if ( m_pNode != nullptr ) {
typename gc::Guard g;
node_type * pNode = node_traits::to_node_ptr( m_pNode );
typedef typename cds::details::make_const_type<value_type, IsConst>::reference value_ref;
iterator_type()
- : m_pNode(null_ptr<value_type *>())
+ : m_pNode( nullptr )
{}
iterator_type( iterator_type const& src )
m_pNode = m_Guard.assign( src.m_pNode );
}
else
- m_pNode = null_ptr<value_type *>();
+ m_pNode = nullptr;
}
value_ptr operator ->() const
value_ref operator *() const
{
- assert( m_pNode != null_ptr<value_type *>() );
+ assert( m_pNode != nullptr );
return *m_pNode;
}
// split-list support
bool insert_aux_node( node_type * pHead, node_type * pNode )
{
- assert( pNode != null_ptr<node_type *>() );
+ assert( pNode != nullptr );
// Hack: convert node_type to value_type.
// In principle, auxiliary node can be non-reducible to value_type
break;
bkoff();
}
- assert( pCur.ptr() != null_ptr<node_type *>() );
+ assert( pCur.ptr() != nullptr );
}
pos.pCur = pCur.ptr();