|
|
constexpr auto | begin () const noexcept -> list_iterator |
|
constexpr auto | begin () noexcept -> list_iterator |
| | Raw bidirectional begin iterator.
|
|
constexpr auto | begin () noexcept |
|
constexpr auto | count () const noexcept -> usize |
| | Returns the number of elements. O(N) — avoid hot paths.
|
|
constexpr auto | empty () const noexcept -> bool |
| | Returns true if the list contains no elements.
|
|
constexpr auto | end () const noexcept -> list_iterator |
|
constexpr auto | end () noexcept -> list_iterator |
| | Raw bidirectional end iterator (sentinel).
|
|
constexpr auto | end () noexcept |
| constexpr auto | insert_before (list_node &marker, list_node &node) noexcept -> void |
| | Insert node immediately before marker.
|
|
template<typename Owner, list_node Owner::* member> |
| constexpr auto | iter () noexcept -> typed_range< Owner, member > |
| | Return a typed range adaptor for range-for over Owner&.
|
|
| list_head (const list_head &)=delete |
|
| list_head (list_head &&)=delete |
|
constexpr | list_iterator (list_node *cur) noexcept |
|
constexpr | list_node () noexcept |
| | Initialize node to the self-linked (unlinked) state.
|
|
| list_node (const list_node &)=delete |
|
| list_node (list_node &&)=delete |
|
constexpr auto | operator!= (const list_iterator &o) const noexcept -> bool |
|
constexpr auto | operator!= (const typed_list_iterator &o) const noexcept -> bool |
|
constexpr auto | operator* () const noexcept -> const list_node * |
|
constexpr auto | operator* () noexcept -> list_node * |
|
constexpr auto | operator* () const noexcept -> const Owner & |
|
constexpr auto | operator* () noexcept -> Owner & |
|
constexpr auto | operator++ () noexcept -> list_iterator & |
|
constexpr auto | operator++ (int) noexcept -> list_iterator |
|
constexpr auto | operator++ () noexcept -> typed_list_iterator & |
|
constexpr auto | operator++ (int) noexcept -> typed_list_iterator |
|
constexpr auto | operator-- () noexcept -> list_iterator & |
|
constexpr auto | operator-- (int) noexcept -> list_iterator |
|
constexpr auto | operator-- () noexcept -> typed_list_iterator & |
|
constexpr auto | operator-- (int) noexcept -> typed_list_iterator |
|
auto | operator= (const list_head &)=delete |
|
auto | operator= (list_head &&)=delete |
|
auto | operator= (const list_node &)=delete |
|
auto | operator= (list_node &&)=delete |
|
constexpr auto | operator== (const list_iterator &o) const noexcept -> bool |
|
constexpr auto | operator== (const typed_list_iterator &o) const noexcept -> bool |
| constexpr auto | pop_front () noexcept -> list_node * |
| | Remove and return the first element, or nullptr if empty.
|
| constexpr auto | push_back (list_node &node) noexcept -> void |
| | Append node (new last element).
|
| constexpr auto | push_front (list_node &node) noexcept -> void |
| | Prepend node (new first element).
|
| static constexpr auto | remove (list_node &node) noexcept -> void |
| | Remove node from this list.
|
|
constexpr auto | singular () const noexcept -> bool |
| | Returns true if the list contains exactly one element.
|
| constexpr auto | splice_back (list_head &src) noexcept -> void |
| | Move all elements of src to the back of this list.
|
|
constexpr | typed_list_iterator (list_node *cur) noexcept |