MAGE  v0.171.0
Matthias Advanced Game Engine
mage::DynamicArray< T > Class Template Reference

#include <dynamic_array.hpp>

Public Types

using value_type = T
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using reference = value_type &
 
using const_reference = const value_type &
 
using pointer = value_type *
 
using const_pointer = const value_type *
 
using iterator = T *
 
using const_iterator = const T *
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Public Member Functions

 DynamicArray (size_type size=0u)
 
 DynamicArray (const DynamicArray &a)
 
 DynamicArray (DynamicArray &&a) noexcept=default
 
 ~DynamicArray ()=default
 
DynamicArrayoperator= (const DynamicArray &a)
 
DynamicArrayoperator= (DynamicArray &&a) noexcept=default
 
reference at (size_type index)
 
const_reference at (size_type index) const
 
reference operator[] (size_type index) noexcept
 
const_reference operator[] (size_type index) const noexcept
 
reference front () noexcept
 
const_reference front () const noexcept
 
reference back () noexcept
 
const_reference back () const noexcept
 
T * data () noexcept
 
const T * data () const noexcept
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
bool empty () const noexcept
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
void fill (const T &value)
 
void swap (DynamicArray &other) noexcept
 

Private Attributes

std::size_t m_size
 
UniquePtr< T[] > m_data
 

Member Typedef Documentation

◆ const_iterator

template<typename T>
using mage::DynamicArray< T >::const_iterator = const T*

◆ const_pointer

template<typename T>
using mage::DynamicArray< T >::const_pointer = const value_type*

◆ const_reference

template<typename T>
using mage::DynamicArray< T >::const_reference = const value_type&

◆ const_reverse_iterator

template<typename T>
using mage::DynamicArray< T >::const_reverse_iterator = std::reverse_iterator< const_iterator >

◆ difference_type

template<typename T>
using mage::DynamicArray< T >::difference_type = std::ptrdiff_t

◆ iterator

template<typename T>
using mage::DynamicArray< T >::iterator = T *

◆ pointer

template<typename T>
using mage::DynamicArray< T >::pointer = value_type*

◆ reference

template<typename T>
using mage::DynamicArray< T >::reference = value_type&

◆ reverse_iterator

template<typename T>
using mage::DynamicArray< T >::reverse_iterator = std::reverse_iterator< iterator >

◆ size_type

template<typename T>
using mage::DynamicArray< T >::size_type = std::size_t

◆ value_type

template<typename T>
using mage::DynamicArray< T >::value_type = T

Constructor & Destructor Documentation

◆ DynamicArray() [1/3]

template<typename T>
mage::DynamicArray< T >::DynamicArray ( size_type  size = 0u)
explicit

◆ DynamicArray() [2/3]

template<typename T>
mage::DynamicArray< T >::DynamicArray ( const DynamicArray< T > &  a)

◆ DynamicArray() [3/3]

template<typename T>
mage::DynamicArray< T >::DynamicArray ( DynamicArray< T > &&  a)
defaultnoexcept

◆ ~DynamicArray()

template<typename T>
mage::DynamicArray< T >::~DynamicArray ( )
default

Member Function Documentation

◆ at() [1/2]

template<typename T>
reference mage::DynamicArray< T >::at ( size_type  index)

◆ at() [2/2]

template<typename T>
const_reference mage::DynamicArray< T >::at ( size_type  index) const

◆ back() [1/2]

template<typename T>
reference mage::DynamicArray< T >::back ( )
noexcept

◆ back() [2/2]

template<typename T>
const_reference mage::DynamicArray< T >::back ( ) const
noexcept

◆ begin() [1/2]

template<typename T>
iterator mage::DynamicArray< T >::begin ( )
noexcept

◆ begin() [2/2]

template<typename T>
const_iterator mage::DynamicArray< T >::begin ( ) const
noexcept

◆ cbegin()

template<typename T>
const_iterator mage::DynamicArray< T >::cbegin ( ) const
noexcept

◆ cend()

template<typename T>
const_iterator mage::DynamicArray< T >::cend ( ) const
noexcept

◆ crbegin()

template<typename T>
const_reverse_iterator mage::DynamicArray< T >::crbegin ( ) const
noexcept

◆ crend()

template<typename T>
const_reverse_iterator mage::DynamicArray< T >::crend ( ) const
noexcept

◆ data() [1/2]

template<typename T>
T* mage::DynamicArray< T >::data ( )
noexcept

◆ data() [2/2]

template<typename T>
const T* mage::DynamicArray< T >::data ( ) const
noexcept

◆ empty()

template<typename T>
bool mage::DynamicArray< T >::empty ( ) const
noexcept

◆ end() [1/2]

template<typename T>
iterator mage::DynamicArray< T >::end ( )
noexcept

◆ end() [2/2]

template<typename T>
const_iterator mage::DynamicArray< T >::end ( ) const
noexcept

◆ fill()

template<typename T>
void mage::DynamicArray< T >::fill ( const T &  value)

◆ front() [1/2]

template<typename T>
reference mage::DynamicArray< T >::front ( )
noexcept

◆ front() [2/2]

template<typename T>
const_reference mage::DynamicArray< T >::front ( ) const
noexcept

◆ max_size()

template<typename T>
size_type mage::DynamicArray< T >::max_size ( ) const
noexcept

◆ operator=() [1/2]

template<typename T>
DynamicArray& mage::DynamicArray< T >::operator= ( const DynamicArray< T > &  a)

◆ operator=() [2/2]

template<typename T>
DynamicArray& mage::DynamicArray< T >::operator= ( DynamicArray< T > &&  a)
defaultnoexcept

◆ operator[]() [1/2]

template<typename T>
reference mage::DynamicArray< T >::operator[] ( size_type  index)
noexcept

◆ operator[]() [2/2]

template<typename T>
const_reference mage::DynamicArray< T >::operator[] ( size_type  index) const
noexcept

◆ rbegin() [1/2]

template<typename T>
reverse_iterator mage::DynamicArray< T >::rbegin ( )
noexcept

◆ rbegin() [2/2]

template<typename T>
const_reverse_iterator mage::DynamicArray< T >::rbegin ( ) const
noexcept

◆ rend() [1/2]

template<typename T>
reverse_iterator mage::DynamicArray< T >::rend ( )
noexcept

◆ rend() [2/2]

template<typename T>
const_reverse_iterator mage::DynamicArray< T >::rend ( ) const
noexcept

◆ size()

template<typename T>
size_type mage::DynamicArray< T >::size ( ) const
noexcept

◆ swap()

template<typename T>
void mage::DynamicArray< T >::swap ( DynamicArray< T > &  other)
noexcept

Member Data Documentation

◆ m_data

template<typename T>
UniquePtr< T[] > mage::DynamicArray< T >::m_data
private

◆ m_size

template<typename T>
std::size_t mage::DynamicArray< T >::m_size
private