Gaia-ECS v1.0.0
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::cnt::darray_ilist_storage< TListItem > Struct Template Reference

Contiguous storage adapter used by ilist by default. More...

#include <ilist.h>

+ Inheritance diagram for gaia::cnt::darray_ilist_storage< TListItem >:

Public Member Functions

void add_item (TListItem &&container)
 Appends a live item.
 
void del_item (TListItem &container)
 Notifies the storage adapter that an item is being recycled.
 
- Public Member Functions inherited from gaia::cnt::darr< T, Allocator >
 darr (core::zero_t) noexcept
 Constructs a value-initialized container.
 
 darr (size_type count, const_reference value)
 Constructs a container with copies of a value.
 
 darr (size_type count)
 Constructs a container with the requested number of value-initialized elements.
 
template<typename InputIt >
 darr (InputIt first, InputIt last)
 Constructs a container from an iterator range.
 
 darr (std::initializer_list< T > il)
 Constructs a container from an initializer list.
 
 darr (const darr &other)
 Copy-constructs a container.
 
 darr (darr &&other) noexcept
 Move-constructs a container.
 
darroperator= (std::initializer_list< T > il)
 Replaces the elements from an initializer list.
 
darroperator= (const darr &other)
 Copy-assigns the container.
 
darroperator= (darr &&other) noexcept
 Move-assigns the container.
 
GAIA_NODISCARD pointer data () noexcept
 Returns a pointer to the element storage.
 
GAIA_NODISCARD const_pointer data () const noexcept
 Returns a pointer to the element storage.
 
GAIA_NODISCARD decltype(autooperator[] (size_type pos) noexcept
 Accesses an element without bounds checking in optimized builds.
 
GAIA_NODISCARD decltype(autooperator[] (size_type pos) const noexcept
 Accesses an element without bounds checking in optimized builds.
 
void reserve (size_type cap)
 Ensures storage for at least the requested number of elements.
 
void resize (size_type count)
 Changes the number of elements.
 
void resize (size_type count, const_reference value)
 Changes the size and initializes new elements from a value.
 
void push_back (const T &arg)
 Appends an element.
 
void push_back (T &&arg)
 Appends an element.
 
template<typename... Args>
decltype(autoemplace_back (Args &&... args)
 Constructs and appends an element.
 
void pop_back () noexcept
 Removes the last element.
 
iterator insert (iterator pos, const T &arg)
 Insert the element to the position given by iterator pos.
 
iterator insert (iterator pos, T &&arg)
 Insert the element to the position given by iterator pos.
 
iterator erase (iterator pos) noexcept
 Removes the element at pos.
 
iterator erase (iterator first, iterator last) noexcept
 Removes the elements in the range [first, last)
 
void clear () noexcept
 Removes all elements.
 
void shrink_to_fit ()
 Reduces allocated storage to match the current size when possible.
 
template<typename Func >
auto retain (Func &&func)
 Removes all elements that fail the predicate.
 
GAIA_NODISCARD size_type size () const noexcept
 Returns the number of elements.
 
GAIA_NODISCARD bool empty () const noexcept
 Checks whether the container has no elements.
 
GAIA_NODISCARD size_type capacity () const noexcept
 Returns the number of elements that fit without reallocation.
 
GAIA_NODISCARD size_type max_size () const noexcept
 Returns the maximum number of elements supported by this container.
 
GAIA_NODISCARD decltype(autofront () noexcept
 Accesses the first element.
 
GAIA_NODISCARD decltype(autofront () const noexcept
 Accesses the first element.
 
GAIA_NODISCARD decltype(autoback () noexcept
 Accesses the last element.
 
GAIA_NODISCARD decltype(autoback () const noexcept
 Accesses the last element.
 
GAIA_NODISCARD auto begin () noexcept
 Returns an iterator to the first element.
 
GAIA_NODISCARD auto begin () const noexcept
 Returns an iterator to the first element.
 
GAIA_NODISCARD auto cbegin () const noexcept
 Returns a read-only iterator to the first element.
 
GAIA_NODISCARD auto rbegin () noexcept
 Returns a reverse traversal iterator to the last element.
 
GAIA_NODISCARD auto rbegin () const noexcept
 Returns a reverse traversal iterator to the last element.
 
GAIA_NODISCARD auto crbegin () const noexcept
 Returns a read-only reverse traversal iterator to the last element.
 
GAIA_NODISCARD auto end () noexcept
 Returns an iterator one past the last element.
 
GAIA_NODISCARD auto end () const noexcept
 Returns an iterator one past the last element.
 
GAIA_NODISCARD auto cend () const noexcept
 Returns a read-only iterator one past the last element.
 
GAIA_NODISCARD auto rend () noexcept
 Returns the reverse traversal sentinel preceding the first element.
 
GAIA_NODISCARD auto rend () const noexcept
 Returns the reverse traversal sentinel preceding the first element.
 
GAIA_NODISCARD auto crend () const noexcept
 Returns the read-only reverse traversal sentinel preceding the first element.
 
GAIA_NODISCARD bool operator== (const darr &other) const noexcept
 Compares two containers element by element.
 
GAIA_NODISCARD constexpr bool operator!= (const darr &other) const noexcept
 Checks whether two containers differ.
 

Additional Inherited Members

- Public Types inherited from gaia::cnt::darr< T, Allocator >
using value_type = T
 Element type stored by the container.
 
using reference = T &
 Mutable element reference type.
 
using const_reference = const T &
 Read-only element reference type.
 
using pointer = T *
 Mutable element pointer type.
 
using const_pointer = const T *
 Read-only element pointer type.
 
using view_policy = mem::data_view_policy_aos< T >
 Data-layout access policy used by the container.
 
using difference_type = darr_detail::difference_type
 Type used for iterator differences.
 
using size_type = darr_detail::size_type
 Unsigned type used for sizes and indices.
 
using iterator = pointer
 Mutable random-access iterator type.
 
using const_iterator = const_pointer
 Read-only random-access iterator type.
 
using iterator_category = core::random_access_iterator_tag
 Iterator category exposed by the container.
 
- Static Public Attributes inherited from gaia::cnt::darr< T, Allocator >
static constexpr size_t value_size = sizeof(T)
 Size of one element in bytes.
 

Detailed Description

template<typename TListItem>
struct gaia::cnt::darray_ilist_storage< TListItem >

Contiguous storage adapter used by ilist by default.

Template Parameters
TListItemImplicit-list item type.

Member Function Documentation

◆ add_item()

template<typename TListItem >
void gaia::cnt::darray_ilist_storage< TListItem >::add_item ( TListItem &&  container)
inline

Appends a live item.

Parameters
containerItem to move into storage.

◆ del_item()

template<typename TListItem >
void gaia::cnt::darray_ilist_storage< TListItem >::del_item ( TListItem container)
inline

Notifies the storage adapter that an item is being recycled.

Parameters
containerItem being recycled. Contiguous storage keeps the slot in place.

The documentation for this struct was generated from the following file: