CoriEngine
Loading...
Searching...
No Matches
Cori::Core::PackedArray< T, SizeT, MaxSize > Class Template Reference

This is my packed/dense array custom implementation. More...

#include <PackedArray.hpp>

Public Types

using iterator = typename std::array<T, MaxSize>::iterator
using const_iterator = typename std::array<T, MaxSize>::const_iterator

Public Member Functions

 PackedArray ()=default
bool push_back (const T &value)
template<typename... Args>
requires std::constructible_from<T, Args...>
T & emplace (Args &&... args)
bool remove (const T &value)
bool remove (const SizeT index)
iterator begin ()
const_iterator cbegin () const
iterator end ()
const_iterator cend () const
SizeT size () const
constexpr SizeT capacity () const
bool empty () const
bool full () const
T & operator[] (SizeT index)
const T & operator[] (SizeT index) const
T & at (SizeT index)
const T & at (SizeT index) const
void clear ()

Detailed Description

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
requires std::equality_comparable<T> && std::movable<T>
class Cori::Core::PackedArray< T, SizeT, MaxSize >

This is my packed/dense array custom implementation.

Template Parameters
TType to be stored in an array.
SizeTType of size/indexes. Should be an unsigned integer.
MaxSizeMaximum pack array capacity.
Note
I tried mimicking the stl API so should be intuitive.

Definition at line 13 of file PackedArray.hpp.

Member Typedef Documentation

◆ const_iterator

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
using Cori::Core::PackedArray< T, SizeT, MaxSize >::const_iterator = typename std::array<T, MaxSize>::const_iterator

Definition at line 16 of file PackedArray.hpp.

◆ iterator

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
using Cori::Core::PackedArray< T, SizeT, MaxSize >::iterator = typename std::array<T, MaxSize>::iterator

Definition at line 15 of file PackedArray.hpp.

Constructor & Destructor Documentation

◆ PackedArray()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
Cori::Core::PackedArray< T, SizeT, MaxSize >::PackedArray ( )
default

Member Function Documentation

◆ at() [1/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
T & Cori::Core::PackedArray< T, SizeT, MaxSize >::at ( SizeT index)
inlinenodiscard

Definition at line 100 of file PackedArray.hpp.

◆ at() [2/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
const T & Cori::Core::PackedArray< T, SizeT, MaxSize >::at ( SizeT index) const
inline

Definition at line 107 of file PackedArray.hpp.

◆ begin()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
iterator Cori::Core::PackedArray< T, SizeT, MaxSize >::begin ( )
inline

Definition at line 71 of file PackedArray.hpp.

◆ capacity()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
SizeT Cori::Core::PackedArray< T, SizeT, MaxSize >::capacity ( ) const
inlinenodiscardconstexpr

Definition at line 81 of file PackedArray.hpp.

◆ cbegin()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
const_iterator Cori::Core::PackedArray< T, SizeT, MaxSize >::cbegin ( ) const
inline

Definition at line 72 of file PackedArray.hpp.

◆ cend()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
const_iterator Cori::Core::PackedArray< T, SizeT, MaxSize >::cend ( ) const
inline

Definition at line 75 of file PackedArray.hpp.

◆ clear()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
void Cori::Core::PackedArray< T, SizeT, MaxSize >::clear ( )
inline

Definition at line 114 of file PackedArray.hpp.

◆ emplace()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
template<typename... Args>
requires std::constructible_from<T, Args...>
T & Cori::Core::PackedArray< T, SizeT, MaxSize >::emplace ( Args &&... args)
inline

Definition at line 30 of file PackedArray.hpp.

Here is the call graph for this function:

◆ empty()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
bool Cori::Core::PackedArray< T, SizeT, MaxSize >::empty ( ) const
inlinenodiscard

Definition at line 85 of file PackedArray.hpp.

◆ end()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
iterator Cori::Core::PackedArray< T, SizeT, MaxSize >::end ( )
inline

Definition at line 74 of file PackedArray.hpp.

◆ full()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
bool Cori::Core::PackedArray< T, SizeT, MaxSize >::full ( ) const
inlinenodiscard

Definition at line 89 of file PackedArray.hpp.

◆ operator[]() [1/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
T & Cori::Core::PackedArray< T, SizeT, MaxSize >::operator[] ( SizeT index)
inlinenodiscard

Definition at line 93 of file PackedArray.hpp.

◆ operator[]() [2/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
const T & Cori::Core::PackedArray< T, SizeT, MaxSize >::operator[] ( SizeT index) const
inline

Definition at line 96 of file PackedArray.hpp.

◆ push_back()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
bool Cori::Core::PackedArray< T, SizeT, MaxSize >::push_back ( const T & value)
inline

Definition at line 20 of file PackedArray.hpp.

◆ remove() [1/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
bool Cori::Core::PackedArray< T, SizeT, MaxSize >::remove ( const SizeT index)
inline

Definition at line 63 of file PackedArray.hpp.

Here is the call graph for this function:

◆ remove() [2/2]

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
bool Cori::Core::PackedArray< T, SizeT, MaxSize >::remove ( const T & value)
inline

Definition at line 40 of file PackedArray.hpp.

Here is the call graph for this function:

◆ size()

template<typename T, std::unsigned_integral SizeT, SizeT MaxSize>
SizeT Cori::Core::PackedArray< T, SizeT, MaxSize >::size ( ) const
inlinenodiscard

Definition at line 77 of file PackedArray.hpp.


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