- typedef cds::urcu::exempt_ptr< gc, node_type, value_type, typename maker::intrusive_traits::disposer,
+ using exempt_ptr = cds::urcu::exempt_ptr< gc, node_type, value_type, typename maker::intrusive_traits::disposer,
template <typename K, typename Less>
bool erase_with( K const& key, Less pred )
{
template <typename K, typename Less>
bool erase_with( K const& key, Less pred )
{
template <typename K, typename Less, typename Func>
bool erase_with( K const& key, Less pred, Func f )
{
template <typename K, typename Less, typename Func>
bool erase_with( K const& key, Less pred, Func f )
{
return erase_at( head(), key, typename maker::template less_wrapper<Less>::type(), f );
}
return erase_at( head(), key, typename maker::template less_wrapper<Less>::type(), f );
}
/**
@anchor cds_nonintrusive_LazyKVList_rcu_extract
The function searches an item with key equal to \p key in the list,
/**
@anchor cds_nonintrusive_LazyKVList_rcu_extract
The function searches an item with key equal to \p key in the list,
- unlinks it from the list, and returns pointer to an item found in \p dest argument.
- If \p key is not found the function returns \p false.
+ unlinks it from the list, and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item found.
+ If \p key is not found the function returns an empty \p exempt_ptr.
@note The function does NOT call RCU read-side lock or synchronization,
and does NOT dispose the item found. It just excludes the item from the list
and returns a pointer to item found.
@note The function does NOT call RCU read-side lock or synchronization,
and does NOT dispose the item found. It just excludes the item from the list
and returns a pointer to item found.
// Now, you can apply extract function
// Note that you must not delete the item found inside the RCU lock
// Now, you can apply extract function
// Note that you must not delete the item found inside the RCU lock
\p pred must imply the same element order as \ref key_comparator.
*/
template <typename K, typename Less>
\p pred must imply the same element order as \ref key_comparator.
*/
template <typename K, typename Less>
template <typename Q, typename Less>
bool find_with( Q const& key, Less pred ) const
{
template <typename Q, typename Less>
bool find_with( Q const& key, Less pred ) const
{
template <typename Q, typename Less, typename Func>
bool find_with( Q const& key, Less pred, Func f ) const
{
template <typename Q, typename Less, typename Func>
bool find_with( Q const& key, Less pred, Func f ) const
{
return find_at( head(), key, typename maker::template less_wrapper<Less>::type(), f );
}
return find_at( head(), key, typename maker::template less_wrapper<Less>::type(), f );
}
template <typename K, typename Less>
value_type * get_with( K const& key, Less pred ) const
{
template <typename K, typename Less>
value_type * get_with( K const& key, Less pred ) const
{