Gaia-ECS v0.9.3
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::cnt::darr< T, Allocator > Class Template Reference

Array with variable size of elements of type. More...

#include <darray_impl.h>

+ Inheritance diagram for gaia::cnt::darr< T, Allocator >:

Public Types

using value_type = T
 
using reference = T &
 
using const_reference = const T &
 
using pointer = T *
 
using const_pointer = const T *
 
using view_policy = mem::data_view_policy_aos< T >
 
using difference_type = darr_detail::difference_type
 
using size_type = darr_detail::size_type
 
using iterator = pointer
 
using const_iterator = const_pointer
 
using iterator_category = core::random_access_iterator_tag
 

Public Member Functions

 darr (core::zero_t) noexcept
 
 darr (size_type count, const_reference value)
 
 darr (size_type count)
 
template<typename InputIt >
 darr (InputIt first, InputIt last)
 
 darr (std::initializer_list< T > il)
 
 darr (const darr &other)
 
 darr (darr &&other) noexcept
 
darroperator= (std::initializer_list< T > il)
 
darroperator= (const darr &other)
 
darroperator= (darr &&other) noexcept
 
GAIA_NODISCARD pointer data () noexcept
 
GAIA_NODISCARD const_pointer data () const noexcept
 
GAIA_NODISCARD decltype(auto) operator[] (size_type pos) noexcept
 
GAIA_NODISCARD decltype(auto) operator[] (size_type pos) const noexcept
 
void reserve (size_type cap)
 
void resize (size_type count)
 
void push_back (const T &arg)
 
void push_back (T &&arg)
 
template<typename... Args>
decltype(auto) emplace_back (Args &&... args)
 
void pop_back () noexcept
 
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
 
void shrink_to_fit ()
 
template<typename Func >
auto retain (Func &&func)
 Removes all elements that fail the predicate.
 
GAIA_NODISCARD size_type size () const noexcept
 
GAIA_NODISCARD bool empty () const noexcept
 
GAIA_NODISCARD size_type capacity () const noexcept
 
GAIA_NODISCARD size_type max_size () const noexcept
 
GAIA_NODISCARD decltype(auto) front () noexcept
 
GAIA_NODISCARD decltype(auto) front () const noexcept
 
GAIA_NODISCARD decltype(auto) back () noexcept
 
GAIA_NODISCARD decltype(auto) back () const noexcept
 
GAIA_NODISCARD auto begin () noexcept
 
GAIA_NODISCARD auto begin () const noexcept
 
GAIA_NODISCARD auto cbegin () const noexcept
 
GAIA_NODISCARD auto rbegin () noexcept
 
GAIA_NODISCARD auto rbegin () const noexcept
 
GAIA_NODISCARD auto crbegin () const noexcept
 
GAIA_NODISCARD auto end () noexcept
 
GAIA_NODISCARD auto end () const noexcept
 
GAIA_NODISCARD auto cend () const noexcept
 
GAIA_NODISCARD auto rend () noexcept
 
GAIA_NODISCARD auto rend () const noexcept
 
GAIA_NODISCARD auto crend () const noexcept
 
GAIA_NODISCARD bool operator== (const darr &other) const noexcept
 
GAIA_NODISCARD constexpr bool operator!= (const darr &other) const noexcept
 

Static Public Attributes

static constexpr size_t value_size = sizeof(T)
 

Detailed Description

template<typename T, typename Allocator = mem::DefaultAllocatorAdaptor>
class gaia::cnt::darr< T, Allocator >

Array with variable size of elements of type.

Template Parameters
Tallocated on heap. Interface compatiblity with std::vector where it matters.

Member Function Documentation

◆ erase() [1/2]

template<typename T , typename Allocator = mem::DefaultAllocatorAdaptor>
iterator gaia::cnt::darr< T, Allocator >::erase ( iterator  first,
iterator  last 
)
inlinenoexcept

Removes the elements in the range [first, last)

Parameters
firstIterator to the element to remove
lastIterator to the one beyond the last element to remove

◆ erase() [2/2]

template<typename T , typename Allocator = mem::DefaultAllocatorAdaptor>
iterator gaia::cnt::darr< T, Allocator >::erase ( iterator  pos)
inlinenoexcept

Removes the element at pos.

Parameters
posIterator to the element to remove

◆ insert() [1/2]

template<typename T , typename Allocator = mem::DefaultAllocatorAdaptor>
iterator gaia::cnt::darr< T, Allocator >::insert ( iterator  pos,
const T &  arg 
)
inline

Insert the element to the position given by iterator pos.

Parameters
posPosition in the container
argData to insert

◆ insert() [2/2]

template<typename T , typename Allocator = mem::DefaultAllocatorAdaptor>
iterator gaia::cnt::darr< T, Allocator >::insert ( iterator  pos,
T &&  arg 
)
inline

Insert the element to the position given by iterator pos.

Parameters
posPosition in the container
argData to insert

◆ retain()

template<typename T , typename Allocator = mem::DefaultAllocatorAdaptor>
template<typename Func >
auto gaia::cnt::darr< T, Allocator >::retain ( Func &&  func)
inline

Removes all elements that fail the predicate.

Parameters
funcA lambda or a functor with the bool operator()(Container::value_type&) overload.
Returns
The new size of the array.

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