node_type * pNode = node_traits::to_node_ptr( m_pNode );
node_type * pNext = pNode->m_pNext.load(memory_model::memory_order_relaxed).ptr();
node_type * pNode = node_traits::to_node_ptr( m_pNode );
node_type * pNext = pNode->m_pNext.load(memory_model::memory_order_relaxed).ptr();
/// Finds the key \p val and return the item found
/** \anchor cds_intrusive_LazyList_rcu_get
The function searches the item with key equal to \p val and returns the pointer to item found.
/// Finds the key \p val and return the item found
/** \anchor cds_intrusive_LazyList_rcu_get
The function searches the item with key equal to \p val and returns the pointer to item found.
// Hack: convert node_type to value_type.
// In principle, auxiliary node can be non-reducible to value_type
// Hack: convert node_type to value_type.
// In principle, auxiliary node can be non-reducible to value_type
value_type * get_at( node_type * pHead, Q const& val, Compare cmp ) const
{
# ifdef CDS_CXX11_LAMBDA_SUPPORT
value_type * get_at( node_type * pHead, Q const& val, Compare cmp ) const
{
# ifdef CDS_CXX11_LAMBDA_SUPPORT
return find_at( pHead, val, cmp, [&pFound](value_type& found, Q const& ) { pFound = &found; } )
return find_at( pHead, val, cmp, [&pFound](value_type& found, Q const& ) { pFound = &found; } )
- return find_at( pHead , val, cmp, cds::ref(gf) ) ? gf.pFound : null_ptr<value_type *>();
+ return find_at( pHead, val, cmp, cds::ref( gf ) ) ? gf.pFound : nullptr;