Shared/Containers/GrowableArray.h file

Namespaces

namespace Death
Shared root namespace.
namespace Death::Containers
Container implementations.

Classes

template<class T>
struct Death::Containers::ArrayNewAllocator
New-based allocator for growable arrays.
template<class T>
struct Death::Containers::ArrayMallocAllocator
Malloc-based allocator for growable arrays.
template<class T>
struct Death::Containers::ArrayAllocator
Allocator for growable arrays.

Functions

template<class U, class T>
auto arrayAllocatorCast(Array<T>&& array) -> Array<U>
Reinterpret-cast a growable array.
template<class U, template<class> class Allocator, class T>
auto arrayAllocatorCast(Array<T>&& array) -> Array<U>
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayIsGrowable(Array<T>& array) -> bool
Whether an array is growable.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayCapacity(Array<T>& array) -> std::size_t
Array capacity.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayReserve(Array<T>& array, std::size_t capacity) -> std::size_t
Reserve given capacity in an array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayResize(Array<T>& array, DefaultInitT, std::size_t size)
Resize an array to given size, default-initializing new elements.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayResize(Array<T>& array, ValueInitT, std::size_t size)
Resize an array to given size, value-initializing new elements.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayResize(Array<T>& array, std::size_t size)
Resize an array to given size, value-initializing new elements.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayResize(Array<T>& array, NoInitT, std::size_t size)
Resize an array to given size, keeping new elements uninitialized.
template<class T, class ... Args>
void arrayResize(Array<T>& array, DirectInitT, std::size_t size, Args && ... args)
Resize an array to given size, constructing new elements using provided arguments.
template<class T, class Allocator, class ... Args>
void arrayResize(Array<T>& array, DirectInitT, std::size_t size, Args && ... args)
template<class T, class Allocator = ArrayAllocator<T>>
void arrayResize(Array<T>& array, std::size_t size, const typename std::common_type<T>::type& value)
Resize an array to given size, copy-constructing new elements using the provided value.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayAppend(Array<T>& array, const typename std::common_type<T>::type& value) -> T&
Copy-append an item to an array.
template<class T, class ... Args>
auto arrayAppend(Array<T>& array, InPlaceInitT, Args && ... args) -> T&
In-place append an item to an array.
template<class T, class Allocator, class ... Args>
auto arrayAppend(Array<T>& array, InPlaceInitT, Args && ... args) -> T&
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayAppend(Array<T>& array, typename std::common_type<T>::type&& value) -> T&
Move-append an item to an array.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayAppend(Array<T>& array, typename std::common_type<ArrayView<const T>>::type values) -> ArrayView<T>
Copy-append a list of items to an array.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayAppend(Array<T>& array, std::initializer_list<typename std::common_type<T>::type> values) -> ArrayView<T>
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayAppend(Array<T>& array, NoInitT, std::size_t count) -> ArrayView<T>
Append given count of uninitialized values to an array.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayInsert(Array<T>& array, std::size_t index, const typename std::common_type<T>::type& value) -> T&
Copy-insert an item into an array.
template<class T, class ... Args>
auto arrayInsert(Array<T>& array, std::size_t index, InPlaceInitT, Args && ... args) -> T&
In-place insert an item into an array.
template<class T, class Allocator, class ... Args>
auto arrayInsert(Array<T>& array, std::size_t index, InPlaceInitT, Args && ... args) -> T&
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayInsert(Array<T>& array, std::size_t index, typename std::common_type<T>::type&& value) -> T&
Move-insert an item into an array.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayInsert(Array<T>& array, std::size_t index, typename std::common_type<ArrayView<const T>>::type values) -> ArrayView<T>
Copy-insert a list of items into an array.
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayInsert(Array<T>& array, std::size_t index, std::initializer_list<typename std::common_type<T>::type> values) -> ArrayView<T>
template<class T, class Allocator = ArrayAllocator<T>>
auto arrayInsert(Array<T>& array, std::size_t index, NoInitT, std::size_t count) -> ArrayView<T>
Insert given count of uninitialized values into an array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayRemove(Array<T>& array, std::size_t index, std::size_t count = 1)
Remove an element from an array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayRemoveUnordered(Array<T>& array, std::size_t index, std::size_t count = 1)
Remove an element from an unordered array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayRemoveSuffix(Array<T>& array, std::size_t count = 1)
Remove a suffix from an array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayClear(Array<T>& array)
Clear an array.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayShrink(Array<T>& array, NoInitT = NoInit)
Convert an array back to non-growable.
template<class T, class Allocator = ArrayAllocator<T>>
void arrayShrink(Array<T>& array, DefaultInitT)
Convert an array back to non-growable using a default initialization.
template<template<class> class Allocator, class T>
void arrayShrink(Array<T>& array)