C/C++ API Reference
Loading...
Searching...
No Matches

Oveview

Classes

class  pw::containers::internal::GenericIntrusiveList< Item >
 
class  pw::containers::internal::LegacyIntrusiveList< typename >
 
class  pw::IntrusiveForwardList< T >
 
class  pw::IntrusiveForwardList< T >::Item
 
class  pw::containers::future::IntrusiveList< T >
 
class  pw::containers::future::IntrusiveList< T >::Item
 

Typedefs

using pw::IntrusiveForwardList< T >::element_type = T
 
using pw::IntrusiveForwardList< T >::value_type = std::remove_cv_t< element_type >
 
using pw::IntrusiveForwardList< T >::size_type = std::size_t
 
using pw::IntrusiveForwardList< T >::difference_type = std::ptrdiff_t
 
using pw::IntrusiveForwardList< T >::reference = value_type &
 
using pw::IntrusiveForwardList< T >::const_reference = const value_type &
 
using pw::IntrusiveForwardList< T >::pointer = element_type *
 
using pw::IntrusiveForwardList< T >::const_pointer = const element_type *
 
using pw::IntrusiveForwardList< T >::iterator = typename ::pw::containers::internal::ForwardIterator< T, ItemBase >
 
using pw::IntrusiveForwardList< T >::const_iterator = typename ::pw::containers::internal::ForwardIterator< std::add_const_t< T >, const ItemBase >
 
using pw::containers::future::IntrusiveList< T >::element_type = T
 
using pw::containers::future::IntrusiveList< T >::value_type = std::remove_cv_t< element_type >
 
using pw::containers::future::IntrusiveList< T >::size_type = std::size_t
 
using pw::containers::future::IntrusiveList< T >::difference_type = std::ptrdiff_t
 
using pw::containers::future::IntrusiveList< T >::reference = value_type &
 
using pw::containers::future::IntrusiveList< T >::const_reference = const value_type &
 
using pw::containers::future::IntrusiveList< T >::pointer = element_type *
 
using pw::containers::future::IntrusiveList< T >::const_pointer = const element_type *
 
using pw::containers::future::IntrusiveList< T >::iterator = typename ::pw::containers::internal::BidirectionalIterator< T, ItemBase >
 
using pw::containers::future::IntrusiveList< T >::const_iterator = typename ::pw::containers::internal::BidirectionalIterator< std::add_const_t< T >, const ItemBase >
 
using pw::containers::future::IntrusiveList< T >::reverse_iterator = std::reverse_iterator< iterator >
 
using pw::containers::future::IntrusiveList< T >::const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Functions

template<typename Iterator >
 pw::containers::internal::GenericIntrusiveList< Item >::GenericIntrusiveList (Iterator first, Iterator last)
 
 pw::containers::internal::GenericIntrusiveList< Item >::GenericIntrusiveList (const GenericIntrusiveList &)=delete
 
GenericIntrusiveListpw::containers::internal::GenericIntrusiveList< Item >::operator= (const GenericIntrusiveList &)=delete
 
 pw::containers::internal::GenericIntrusiveList< Item >::GenericIntrusiveList (GenericIntrusiveList &&other)
 
GenericIntrusiveListpw::containers::internal::GenericIntrusiveList< Item >::operator= (GenericIntrusiveList &&other)
 
template<typename Iterator >
void pw::containers::internal::GenericIntrusiveList< Item >::assign (Iterator first, Iterator last)
 
constexpr Item * pw::containers::internal::GenericIntrusiveList< Item >::before_begin () noexcept
 Returns a pointer to the sentinel item.
 
constexpr const Item * pw::containers::internal::GenericIntrusiveList< Item >::before_begin () const noexcept
 
constexpr Item * pw::containers::internal::GenericIntrusiveList< Item >::begin () noexcept
 Returns a pointer to the first item.
 
constexpr const Item * pw::containers::internal::GenericIntrusiveList< Item >::begin () const noexcept
 
Item * pw::containers::internal::GenericIntrusiveList< Item >::before_end () noexcept
 Returns a pointer to the last item.
 
constexpr Item * pw::containers::internal::GenericIntrusiveList< Item >::end () noexcept
 Returns a pointer to the sentinel item.
 
constexpr const Item * pw::containers::internal::GenericIntrusiveList< Item >::end () const noexcept
 
bool pw::containers::internal::GenericIntrusiveList< Item >::empty () const noexcept
 
constexpr size_t pw::containers::internal::GenericIntrusiveList< Item >::max_size () const noexcept
 
void pw::containers::internal::GenericIntrusiveList< Item >::clear ()
 Removes all items from the list.
 
static Item * pw::containers::internal::GenericIntrusiveList< Item >::insert_after (Item *prev, Item &item)
 
template<typename Iterator >
static Item * pw::containers::internal::GenericIntrusiveList< Item >::insert_after (Item *prev, Iterator first, Iterator last)
 
static Item * pw::containers::internal::GenericIntrusiveList< Item >::erase_after (Item *item)
 
static Item * pw::containers::internal::GenericIntrusiveList< Item >::erase_after (Item *first, Item *last)
 Removes the range of items exclusively between first and last.
 
void pw::containers::internal::GenericIntrusiveList< Item >::swap (GenericIntrusiveList< Item > &other)
 
template<typename Compare >
void pw::containers::internal::GenericIntrusiveList< Item >::merge (GenericIntrusiveList< Item > &other, Compare comp)
 
static void pw::containers::internal::GenericIntrusiveList< Item >::splice_after (Item *pos, GenericIntrusiveList< Item > &other, Item *first, Item *last)
 
bool pw::containers::internal::GenericIntrusiveList< Item >::remove (const Item &item_to_remove)
 
template<typename UnaryPredicate >
size_t pw::containers::internal::GenericIntrusiveList< Item >::remove_if (UnaryPredicate pred, size_t max=std::numeric_limits< size_t >::max())
 
void pw::containers::internal::GenericIntrusiveList< Item >::reverse ()
 Reverses the order of items in the list.
 
template<typename BinaryPredicate >
size_t pw::containers::internal::GenericIntrusiveList< Item >::unique (BinaryPredicate pred)
 
template<typename Compare >
void pw::containers::internal::GenericIntrusiveList< Item >::sort (Compare comp)
 
constexpr pw::IntrusiveForwardList< T >::Item::Item ()=default
 
 pw::IntrusiveForwardList< T >::IntrusiveForwardList (const IntrusiveForwardList &)=delete
 
IntrusiveForwardListpw::IntrusiveForwardList< T >::operator= (const IntrusiveForwardList &)=delete
 
 pw::IntrusiveForwardList< T >::IntrusiveForwardList (IntrusiveForwardList &&)=default
 
IntrusiveForwardListpw::IntrusiveForwardList< T >::operator= (IntrusiveForwardList &&)=default
 
template<typename Iterator >
 pw::IntrusiveForwardList< T >::IntrusiveForwardList (Iterator first, Iterator last)
 
 pw::IntrusiveForwardList< T >::IntrusiveForwardList (std::initializer_list< Item * > items)
 Constructs a list from a std::initializer_list of pointers to items.
 
template<typename Iterator >
void pw::IntrusiveForwardList< T >::assign (Iterator first, Iterator last)
 
void pw::IntrusiveForwardList< T >::assign (std::initializer_list< T * > items)
 
reference pw::IntrusiveForwardList< T >::front ()
 Reference to the first element in the list. Undefined behavior if empty().
 
const_reference pw::IntrusiveForwardList< T >::front () const
 
iterator pw::IntrusiveForwardList< T >::before_begin () noexcept
 
const_iterator pw::IntrusiveForwardList< T >::before_begin () const noexcept
 
const_iterator pw::IntrusiveForwardList< T >::cbefore_begin () const noexcept
 
iterator pw::IntrusiveForwardList< T >::begin () noexcept
 
const_iterator pw::IntrusiveForwardList< T >::begin () const noexcept
 
const_iterator pw::IntrusiveForwardList< T >::cbegin () const noexcept
 
iterator pw::IntrusiveForwardList< T >::end () noexcept
 
const_iterator pw::IntrusiveForwardList< T >::end () const noexcept
 
const_iterator pw::IntrusiveForwardList< T >::cend () const noexcept
 
bool pw::IntrusiveForwardList< T >::empty () const noexcept
 
constexpr size_type pw::IntrusiveForwardList< T >::max_size () const noexcept
 
void pw::IntrusiveForwardList< T >::clear ()
 
iterator pw::IntrusiveForwardList< T >::insert_after (iterator pos, T &item)
 Inserts the given item after the given position, pos.
 
template<typename Iterator >
iterator pw::IntrusiveForwardList< T >::insert_after (iterator pos, Iterator first, Iterator last)
 
iterator pw::IntrusiveForwardList< T >::insert_after (iterator pos, std::initializer_list< T * > items)
 
iterator pw::IntrusiveForwardList< T >::erase_after (iterator pos)
 Removes the item following pos from the list. The item is not destructed.
 
iterator pw::IntrusiveForwardList< T >::erase_after (iterator first, iterator last)
 Removes the range of items from first (inclusive) to last (exclusive).
 
void pw::IntrusiveForwardList< T >::push_front (T &item)
 Inserts the item at the start of the list.
 
void pw::IntrusiveForwardList< T >::pop_front ()
 Removes the first item in the list. The list must not be empty.
 
void pw::IntrusiveForwardList< T >::swap (IntrusiveForwardList< T > &other) noexcept
 
void pw::IntrusiveForwardList< T >::merge (IntrusiveForwardList< T > &other)
 
template<typename Compare >
void pw::IntrusiveForwardList< T >::merge (IntrusiveForwardList< T > &other, Compare comp)
 
void pw::IntrusiveForwardList< T >::splice_after (iterator pos, IntrusiveForwardList< T > &other)
 
void pw::IntrusiveForwardList< T >::splice_after (iterator pos, IntrusiveForwardList< T > &other, iterator it)
 
void pw::IntrusiveForwardList< T >::splice_after (iterator pos, IntrusiveForwardList< T > &other, iterator first, iterator last)
 
bool pw::IntrusiveForwardList< T >::remove (const T &item)
 
template<typename UnaryPredicate >
size_type pw::IntrusiveForwardList< T >::remove_if (UnaryPredicate pred)
 
void pw::IntrusiveForwardList< T >::reverse ()
 
size_type pw::IntrusiveForwardList< T >::unique ()
 
template<typename BinaryPredicate >
size_type pw::IntrusiveForwardList< T >::unique (BinaryPredicate pred)
 
void pw::IntrusiveForwardList< T >::sort ()
 
template<typename Compare >
void pw::IntrusiveForwardList< T >::sort (Compare comp)
 
constexpr pw::containers::future::IntrusiveList< T >::Item::Item ()=default
 
 pw::containers::future::IntrusiveList< T >::IntrusiveList (const IntrusiveList &)=delete
 
IntrusiveListpw::containers::future::IntrusiveList< T >::operator= (const IntrusiveList &)=delete
 
 pw::containers::future::IntrusiveList< T >::IntrusiveList (IntrusiveList &&)=default
 
IntrusiveListpw::containers::future::IntrusiveList< T >::operator= (IntrusiveList &&)=default
 
template<typename Iterator >
 pw::containers::future::IntrusiveList< T >::IntrusiveList (Iterator first, Iterator last)
 
 pw::containers::future::IntrusiveList< T >::IntrusiveList (std::initializer_list< Item * > items)
 
template<typename Iterator >
void pw::containers::future::IntrusiveList< T >::assign (Iterator first, Iterator last)
 
void pw::containers::future::IntrusiveList< T >::assign (std::initializer_list< T * > items)
 
T & pw::containers::future::IntrusiveList< T >::front ()
 Reference to the first element in the list. Undefined behavior if empty().
 
T & pw::containers::future::IntrusiveList< T >::back ()
 Reference to the last element in the list. Undefined behavior if empty().
 
iterator pw::containers::future::IntrusiveList< T >::begin () noexcept
 
const_iterator pw::containers::future::IntrusiveList< T >::begin () const noexcept
 
const_iterator pw::containers::future::IntrusiveList< T >::cbegin () const noexcept
 
iterator pw::containers::future::IntrusiveList< T >::end () noexcept
 
const_iterator pw::containers::future::IntrusiveList< T >::end () const noexcept
 
const_iterator pw::containers::future::IntrusiveList< T >::cend () const noexcept
 
reverse_iterator pw::containers::future::IntrusiveList< T >::rbegin ()
 
const_reverse_iterator pw::containers::future::IntrusiveList< T >::rbegin () const
 
const_reverse_iterator pw::containers::future::IntrusiveList< T >::crbegin () const
 
reverse_iterator pw::containers::future::IntrusiveList< T >::rend ()
 
const_reverse_iterator pw::containers::future::IntrusiveList< T >::rend () const
 
const_reverse_iterator pw::containers::future::IntrusiveList< T >::crend () const
 
bool pw::containers::future::IntrusiveList< T >::empty () const noexcept
 
size_t pw::containers::future::IntrusiveList< T >::size () const
 
constexpr size_type pw::containers::future::IntrusiveList< T >::max_size () const noexcept
 
void pw::containers::future::IntrusiveList< T >::clear ()
 Removes all items from the list.
 
iterator pw::containers::future::IntrusiveList< T >::insert (iterator pos, T &item)
 Inserts the given item before the given position, pos.
 
template<typename Iterator >
iterator pw::containers::future::IntrusiveList< T >::insert (iterator pos, Iterator first, Iterator last)
 
iterator pw::containers::future::IntrusiveList< T >::insert (iterator pos, std::initializer_list< T * > items)
 
iterator pw::containers::future::IntrusiveList< T >::erase (T &item)
 Removes the given item from the list. The item is not destructed.
 
iterator pw::containers::future::IntrusiveList< T >::erase (iterator pos)
 
iterator pw::containers::future::IntrusiveList< T >::erase (iterator first, iterator last)
 Removes the range of items from first (inclusive) to last (exclusive).
 
void pw::containers::future::IntrusiveList< T >::push_back (T &item)
 Inserts an element at the end of the list.
 
void pw::containers::future::IntrusiveList< T >::pop_back ()
 Removes the last item in the list. The list must not be empty.
 
void pw::containers::future::IntrusiveList< T >::push_front (T &item)
 Inserts an element at the beginning of the list.
 
void pw::containers::future::IntrusiveList< T >::pop_front ()
 Removes the first item in the list. The list must not be empty.
 
void pw::containers::future::IntrusiveList< T >::swap (IntrusiveList< T > &other) noexcept
 
void pw::containers::future::IntrusiveList< T >::merge (IntrusiveList< T > &other)
 
template<typename Compare >
void pw::containers::future::IntrusiveList< T >::merge (IntrusiveList< T > &other, Compare comp)
 
void pw::containers::future::IntrusiveList< T >::splice (iterator pos, IntrusiveList< T > &other)
 
void pw::containers::future::IntrusiveList< T >::splice (iterator pos, IntrusiveList< T > &other, iterator it)
 
void pw::containers::future::IntrusiveList< T >::splice (iterator pos, IntrusiveList< T > &other, iterator first, iterator last)
 
bool pw::containers::future::IntrusiveList< T >::remove (const T &item)
 
template<typename UnaryPredicate >
size_type pw::containers::future::IntrusiveList< T >::remove_if (UnaryPredicate pred)
 
void pw::containers::future::IntrusiveList< T >::reverse ()
 Reverses the order of items in the list.
 
size_type pw::containers::future::IntrusiveList< T >::unique ()
 
template<typename BinaryPredicate >
size_type pw::containers::future::IntrusiveList< T >::unique (BinaryPredicate pred)
 
void pw::containers::future::IntrusiveList< T >::sort ()
 
template<typename Compare >
void pw::containers::future::IntrusiveList< T >::sort (Compare comp)
 

Friends

template<typename , typename , bool >
struct pw::IntrusiveForwardList< T >::Item::containers::internal::IntrusiveItem
 
template<typename >
class pw::IntrusiveForwardList< T >::containers::internal::LegacyIntrusiveList
 
template<typename , typename , bool >
struct pw::containers::future::IntrusiveList< T >::Item::containers::internal::IntrusiveItem
 

Function Documentation

◆ clear() [1/2]

template<typename T >
void pw::IntrusiveForwardList< T >::clear ( )
inline

◆ clear() [2/2]

template<typename T >
void pw::containers::future::IntrusiveList< T >::clear ( )
inline

Removes all items from the list.

◆ empty() [1/2]

template<typename T >
bool pw::IntrusiveForwardList< T >::empty ( ) const
inlinenoexcept

◆ empty() [2/2]

template<typename T >
bool pw::containers::future::IntrusiveList< T >::empty ( ) const
inlinenoexcept

◆ erase()

template<typename T >
iterator pw::containers::future::IntrusiveList< T >::erase ( iterator  pos)
inline

Removes the item following pos from the list. The item is not destructed.

◆ erase_after()

template<typename Item >
static Item * pw::containers::internal::GenericIntrusiveList< Item >::erase_after ( Item *  item)
inlinestatic

Removes an item from a list.

The item after the given item is unlisted, and the item following it is returned.

This is O(1). The item is not destroyed..

◆ insert() [1/2]

template<typename T >
template<typename Iterator >
iterator pw::containers::future::IntrusiveList< T >::insert ( iterator  pos,
Iterator  first,
Iterator  last 
)
inline

Inserts the range of items from first (inclusive) to last (exclusive) before the given position, pos.

◆ insert() [2/2]

template<typename T >
iterator pw::containers::future::IntrusiveList< T >::insert ( iterator  pos,
std::initializer_list< T * >  items 
)
inline

Inserts the range of items from first (inclusive) to last (exclusive) before the given position, pos.

◆ insert_after() [1/4]

template<typename Item >
static Item * pw::containers::internal::GenericIntrusiveList< Item >::insert_after ( Item *  prev,
Item &  item 
)
inlinestatic

Inserts an item into a list.

The item given by prev is updated to point to the item as being next in the list, while the item itself points to what prev previously pointed to as next.

This is O(1). The ownership of the item is not changed.

Returns
The item that was added.

◆ insert_after() [2/4]

template<typename Item >
template<typename Iterator >
static Item * pw::containers::internal::GenericIntrusiveList< Item >::insert_after ( Item *  prev,
Iterator  first,
Iterator  last 
)
inlinestatic

Adds items to the list from the provided range after the given item.

This is O(n), where "n" is the number of items in the range.

Returns
The last item that was added.

◆ insert_after() [3/4]

template<typename T >
template<typename Iterator >
iterator pw::IntrusiveForwardList< T >::insert_after ( iterator  pos,
Iterator  first,
Iterator  last 
)
inline

Inserts the range of items from first (inclusive) to last (exclusive) after the given position, pos.

◆ insert_after() [4/4]

template<typename T >
iterator pw::IntrusiveForwardList< T >::insert_after ( iterator  pos,
std::initializer_list< T * >  items 
)
inline

Inserts the range of items from first (inclusive) to last (exclusive) after the given position, pos.

◆ IntrusiveForwardList() [1/2]

template<typename T >
pw::IntrusiveForwardList< T >::IntrusiveForwardList ( IntrusiveForwardList< T > &&  )
default

Moves the other list's contents into this list.

This is O(n).

◆ IntrusiveForwardList() [2/2]

template<typename T >
template<typename Iterator >
pw::IntrusiveForwardList< T >::IntrusiveForwardList ( Iterator  first,
Iterator  last 
)
inline

Constructs a list from an iterator over items. The iterator may dereference as either Item& (e.g. from std::array<Item>) or Item* (e.g. from std::initializer_list<Item*>).

◆ IntrusiveList()

template<typename T >
pw::containers::future::IntrusiveList< T >::IntrusiveList ( IntrusiveList< T > &&  )
default

Clears this list and moves the other list's contents into it.

This is O(1).

◆ Item() [1/2]

template<typename T >
constexpr pw::IntrusiveForwardList< T >::Item::Item ( )
explicitconstexprprotecteddefault

The default constructor is the only constructor provided to derived item types. A derived type provides a move constructor and move assignment operator to facilitate using the type with e.g. Vector::emplace_back, but this will not modify the list that the item belongs to, if any.

◆ Item() [2/2]

template<typename T >
constexpr pw::containers::future::IntrusiveList< T >::Item::Item ( )
explicitconstexprprotecteddefault

The default constructor is the only constructor provided to derived item types. A derived type may provide a move constructor and move assignment operator that uses ItemBase::replace to facilitate using the type with routines that require items to be move-assignable, e.g. Vector::emplace_back,

◆ max_size() [1/3]

template<typename Item >
constexpr size_t pw::containers::internal::GenericIntrusiveList< Item >::max_size ( ) const
inlineconstexprnoexcept

Returns how many items can be added.

As an intrusive container, this is effectively unbounded.

◆ max_size() [2/3]

template<typename T >
constexpr size_type pw::IntrusiveForwardList< T >::max_size ( ) const
inlineconstexprnoexcept

◆ max_size() [3/3]

template<typename T >
constexpr size_type pw::containers::future::IntrusiveList< T >::max_size ( ) const
inlineconstexprnoexcept

Returns how many items can be added.

As an intrusive container, this is effectively unbounded.

◆ merge() [1/5]

template<typename Item >
template<typename Compare >
void pw::containers::internal::GenericIntrusiveList< Item >::merge ( GenericIntrusiveList< Item > &  other,
Compare  comp 
)
inline

Merges the given other list into this one.

After the call, the list will be sorted according to comp. The sort is stable, and equivalent items in each list will remain in the same order relative to each other.

◆ merge() [2/5]

template<typename T >
void pw::IntrusiveForwardList< T >::merge ( IntrusiveForwardList< T > &  other)
inline

This overload uses T::operator<.

◆ merge() [3/5]

template<typename T >
template<typename Compare >
void pw::IntrusiveForwardList< T >::merge ( IntrusiveForwardList< T > &  other,
Compare  comp 
)
inline

◆ merge() [4/5]

template<typename T >
void pw::containers::future::IntrusiveList< T >::merge ( IntrusiveList< T > &  other)
inline

Merges the given other list into this one.

After the call, the list will be sorted according to comp. The sort is stable, and equivalent items in each list will remain in the same order relative to each other.

This overload uses T::operator<.

◆ merge() [5/5]

template<typename T >
template<typename Compare >
void pw::containers::future::IntrusiveList< T >::merge ( IntrusiveList< T > &  other,
Compare  comp 
)
inline

Merges the given other list into this one.

After the call, the list will be sorted according to comp. The sort is stable, and equivalent items in each list will remain in the same order relative to each other.

◆ operator=() [1/2]

template<typename T >
IntrusiveForwardList & pw::IntrusiveForwardList< T >::operator= ( IntrusiveForwardList< T > &&  )
default

Clears this list and moves the other list's contents into it.

This is O(n).

◆ operator=() [2/2]

template<typename T >
IntrusiveList & pw::containers::future::IntrusiveList< T >::operator= ( IntrusiveList< T > &&  )
default

Clears this list and moves the other list's contents into it.

This is O(1).

◆ remove() [1/2]

template<typename T >
bool pw::IntrusiveForwardList< T >::remove ( const T &  item)
inline

◆ remove() [2/2]

template<typename T >
bool pw::containers::future::IntrusiveList< T >::remove ( const T &  item)
inline

◆ remove_if() [1/3]

template<typename T >
template<typename UnaryPredicate >
size_type pw::IntrusiveForwardList< T >::remove_if ( UnaryPredicate  pred)
inline

◆ remove_if() [2/3]

template<typename T >
template<typename UnaryPredicate >
size_type pw::containers::future::IntrusiveList< T >::remove_if ( UnaryPredicate  pred)
inline

Removes any item for which the given unary predicate function p evaluates to true when passed that item.

Template Parameters
UnaryPredicateFunction with the signature bool(const Item&)
Returns
The number of items removed.

◆ remove_if() [3/3]

template<typename Item >
template<typename UnaryPredicate >
size_t pw::containers::internal::GenericIntrusiveList< Item >::remove_if ( UnaryPredicate  pred,
size_t  max = std::numeric_limits<size_t>::max() 
)
inline

Removes any item for which the given unary predicate function p evaluates to true when passed that item.

Template Parameters
UnaryPredicateFunction with the signature bool(const Item&)
Returns
The number of items removed.

◆ reverse() [1/2]

template<typename T >
void pw::IntrusiveForwardList< T >::reverse ( )
inline

◆ reverse() [2/2]

template<typename T >
void pw::containers::future::IntrusiveList< T >::reverse ( )
inline

Reverses the order of items in the list.

◆ size()

template<typename T >
size_t pw::containers::future::IntrusiveList< T >::size ( ) const
inline

◆ sort() [1/5]

template<typename T >
void pw::IntrusiveForwardList< T >::sort ( )
inline

This overload uses T::operator<.

◆ sort() [2/5]

template<typename T >
void pw::containers::future::IntrusiveList< T >::sort ( )
inline

Rearranges the items in the list such that the given comparison function comp evaluates to true for each pair of successive items.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)

This overload uses T::operator<.

◆ sort() [3/5]

template<typename Item >
template<typename Compare >
void pw::containers::internal::GenericIntrusiveList< Item >::sort ( Compare  comp)
inline

Rearranges the items in the list such that the given comparison function comp evaluates to true for each pair of successive items.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)

◆ sort() [4/5]

template<typename T >
template<typename Compare >
void pw::IntrusiveForwardList< T >::sort ( Compare  comp)
inline

◆ sort() [5/5]

template<typename T >
template<typename Compare >
void pw::containers::future::IntrusiveList< T >::sort ( Compare  comp)
inline

Rearranges the items in the list such that the given comparison function comp evaluates to true for each pair of successive items.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)

◆ splice() [1/3]

template<typename T >
void pw::containers::future::IntrusiveList< T >::splice ( iterator  pos,
IntrusiveList< T > &  other 
)
inline

Inserts the items of other to before pos in this list. Upon returning, other will be empty.

◆ splice() [2/3]

template<typename T >
void pw::containers::future::IntrusiveList< T >::splice ( iterator  pos,
IntrusiveList< T > &  other,
iterator  first,
iterator  last 
)
inline

Moves the items between first, inclusively, and last, exclusively from other to before pos in this list.

◆ splice() [3/3]

template<typename T >
void pw::containers::future::IntrusiveList< T >::splice ( iterator  pos,
IntrusiveList< T > &  other,
iterator  it 
)
inline

Moves the item pointed to by it from other to before pos in this list.

◆ splice_after() [1/4]

template<typename Item >
static void pw::containers::internal::GenericIntrusiveList< Item >::splice_after ( Item *  pos,
GenericIntrusiveList< Item > &  other,
Item *  first,
Item *  last 
)
inlinestatic

Moves the items exclusively between first and last from other to after pos in this list.

◆ splice_after() [2/4]

template<typename T >
void pw::IntrusiveForwardList< T >::splice_after ( iterator  pos,
IntrusiveForwardList< T > &  other 
)
inline

Inserts the items of other to after pos in this list. Upon returning, other will be empty.

◆ splice_after() [3/4]

template<typename T >
void pw::IntrusiveForwardList< T >::splice_after ( iterator  pos,
IntrusiveForwardList< T > &  other,
iterator  first,
iterator  last 
)
inline

Moves the items exclusively between first and last from other to after pos in this list.

◆ splice_after() [4/4]

template<typename T >
void pw::IntrusiveForwardList< T >::splice_after ( iterator  pos,
IntrusiveForwardList< T > &  other,
iterator  it 
)
inline

Moves the item pointed to by the iterator following it from other to after pos in this list.

◆ swap() [1/2]

template<typename T >
void pw::IntrusiveForwardList< T >::swap ( IntrusiveForwardList< T > &  other)
inlinenoexcept

Exchanges this list's items with the other list's items.

This is O(n), where "n" is the number of items in the range.

◆ swap() [2/2]

template<typename T >
void pw::containers::future::IntrusiveList< T >::swap ( IntrusiveList< T > &  other)
inlinenoexcept

Exchanges this list's items with the other list's items.

This is O(1).

◆ unique() [1/5]

template<typename T >
size_type pw::IntrusiveForwardList< T >::unique ( )
inline

This overload uses T::operator==.

◆ unique() [2/5]

template<typename T >
size_type pw::containers::future::IntrusiveList< T >::unique ( )
inline

Removes consecutive ietms that are equivalent accroding to the given binary predicate p, leaving only the first item in the list.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)

This overload uses T::operator==.

◆ unique() [3/5]

template<typename Item >
template<typename BinaryPredicate >
size_t pw::containers::internal::GenericIntrusiveList< Item >::unique ( BinaryPredicate  pred)
inline

Removes consecutive ietms that are equivalent accroding to the given binary predicate p, leaving only the first item in the list.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)

◆ unique() [4/5]

template<typename T >
template<typename BinaryPredicate >
size_type pw::IntrusiveForwardList< T >::unique ( BinaryPredicate  pred)
inline

◆ unique() [5/5]

template<typename T >
template<typename BinaryPredicate >
size_type pw::containers::future::IntrusiveList< T >::unique ( BinaryPredicate  pred)
inline

Removes consecutive ietms that are equivalent accroding to the given binary predicate p, leaving only the first item in the list.

Template Parameters
BinaryPredicateFunction with the signature bool(const Item&, const Item&)