|
| constexpr | hxconstexpr_list (deleter_t_ deleter_=deleter_t_()) |
| constexpr | ~hxconstexpr_list (void) |
| constexpr T & | back (void) |
| constexpr const T & | back (void) const |
| constexpr iterator | begin (void) |
| constexpr const_iterator | begin (void) const |
| constexpr const_iterator | cbegin (void) const |
| constexpr const_iterator | cend (void) const |
| template<typename deleter_u_> |
| constexpr void | clear (deleter_u_ &&deleter_) noexcept |
| constexpr void | clear (void) |
| constexpr bool | empty (void) const |
| constexpr iterator | end (void) |
| constexpr const_iterator | end (void) const |
| template<typename deleter_u_> |
| constexpr void | erase (const_iterator pos_, deleter_u_ &&deleter_) noexcept |
| constexpr void | erase (const_iterator pos_) noexcept |
| constexpr hxptr< T, deleter_t_ > | extract (const_iterator pos_) |
| template<typename callable_t_> |
| constexpr const_iterator | find_if (callable_t_ &&callable_) const |
| template<typename callable_t_> |
| constexpr iterator | find_if (callable_t_ &&callable_) |
| template<typename callable_t_> |
| constexpr void | for_each (callable_t_ &&callable_) const |
| template<typename callable_t_> |
| constexpr void | for_each (callable_t_ &&callable_) |
| constexpr const deleter_t_ & | deleter (void) const |
| constexpr deleter_t_ & | deleter (void) |
| constexpr T & | front (void) |
| constexpr const T & | front (void) const |
| template<typename deleter_u_> |
| constexpr iterator | insert_after (const_iterator pos_, hxptr< T, deleter_u_ > &&ptr_) |
| constexpr iterator | insert_after (const_iterator pos_, T *ptr_) |
| template<typename deleter_u_> |
| constexpr iterator | insert (const_iterator pos_, hxptr< T, deleter_u_ > &&ptr_) |
| constexpr iterator | insert (const_iterator pos_, T *ptr_) |
| constexpr hxptr< T, deleter_t_ > | pop_back (void) |
| constexpr hxptr< T, deleter_t_ > | pop_front (void) |
| template<typename deleter_u_> |
| constexpr iterator | push_back (hxptr< T, deleter_u_ > &&ptr_) |
| constexpr iterator | push_back (T *ptr_) |
| template<typename deleter_u_> |
| constexpr iterator | push_front (hxptr< T, deleter_u_ > &&ptr_) |
| constexpr iterator | push_front (T *ptr_) |
| constexpr void | release_all (void) |
| template<typename callable_t_, typename deleter_u_> |
| constexpr hxsize_t | remove_if (callable_t_ &&callable_, deleter_u_ &&deleter_) noexcept |
| template<typename callable_t_> |
| constexpr hxsize_t | remove_if (callable_t_ &&callable_) noexcept |
| constexpr void | reverse (void) |
| constexpr hxsize_t | size (void) const |
| constexpr void | splice (const_iterator pos_, hxconstexpr_list &other_) |
template<typename T, typename deleter_t_ = hxdefault_delete>
class hxconstexpr_list< T, deleter_t_ >
hxconstexpr_list - An intrusive doubly linked list that takes ownership of nodes via a deleter_t callable, defaulting to hxdefault_delete.
T must derive from hxconstexpr_list_node. The destructor calls clear() which invokes the deleter on all remaining nodes. Subclasses of T may be inserted heterogeneously. Note: It is possible to iterate backwards from --list.end() to --list.begin() however reverse iterators are not provided.
For example:
example_t(int x) : value(x) { }
int value;
};
for(example_t& n : list) {
::printf("%d\n", n.value);
}
hxconstexpr_list_node - Intrusive doubly linked list node base.
Definition hxconstexpr_list.hpp:31
constexpr hxconstexpr_list(deleter_t_ deleter_=deleter_t_())
Constructs an empty list with an optional deleter instance.
constexpr iterator push_back(hxptr< T, deleter_u_ > &&ptr_)
push_back - Inserts the node owned by ptr at the back of the list.
T * hxnew(Args_ &&... args_) noexcept
hxnew<T, allocator, align>(...) - Allocates and constructs an object of type T using an optional memo...
Definition hxmemory_manager.h:235
template<typename T, typename deleter_t_ = hxdefault_delete>
template<typename callable_t_>
Removes all nodes for which predicate returns true, invoking the stored deleter on each removed node.
Returns the number of nodes removed.
- callable : A callable taking a T reference, returning bool.
template<typename T, typename deleter_t_ = hxdefault_delete>
template<typename callable_t_, typename deleter_u_>
Removes all nodes for which predicate returns true, invoking deleter on each removed node.
If deleter evaluates to false nodes are unlinked but not freed. Returns the number of nodes removed.
- callable : A callable taking a T reference, returning bool.
- deleter : Callable with signature bool deleter(T*).