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

#include <memory_buffer.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

 MemoryBuffer ()
 
 MemoryBuffer (const MemoryBuffer &buffer)=delete
 
 MemoryBuffer (MemoryBuffer &&buffer) noexcept=default
 
 ~MemoryBuffer ()=default
 
MemoryBufferoperator= (const MemoryBuffer &buffer)=delete
 
MemoryBufferoperator= (MemoryBuffer &&buffer)=delete
 
bool UsesStaticMemoryBuffer () const noexcept
 
bool UsesDynamicMemoryBuffer () const noexcept
 
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
 
bool full () const noexcept
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
size_type capacity () const noexcept
 
void reserve (size_type new_capacity)
 
void resize (size_type count)
 
void push_back (const T &value)
 
void push_back (T &&value)
 
template<typename... Args>
void emplace_back (Args &&... args)
 
void swap (MemoryBuffer &other) noexcept
 

Private Attributes

StaticMemoryBuffer< T, StaticCapacity > m_static_data
 
DynamicMemoryBuffer< T > m_dynamic_data
 

Member Typedef Documentation

◆ const_iterator

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::const_iterator = const T*

◆ const_pointer

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::const_pointer = const value_type*

◆ const_reference

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::const_reference = const value_type&

◆ const_reverse_iterator

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::const_reverse_iterator = std::reverse_iterator< const_iterator >

◆ difference_type

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::difference_type = std::ptrdiff_t

◆ iterator

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::iterator = T*

◆ pointer

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::pointer = value_type*

◆ reference

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::reference = value_type&

◆ reverse_iterator

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::reverse_iterator = std::reverse_iterator< iterator >

◆ size_type

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::size_type = std::size_t

◆ value_type

template<typename T, std::size_t StaticCapacity>
using mage::MemoryBuffer< T, StaticCapacity >::value_type = T

Constructor & Destructor Documentation

◆ MemoryBuffer() [1/3]

template<typename T, std::size_t StaticCapacity>
mage::MemoryBuffer< T, StaticCapacity >::MemoryBuffer ( )

◆ MemoryBuffer() [2/3]

template<typename T, std::size_t StaticCapacity>
mage::MemoryBuffer< T, StaticCapacity >::MemoryBuffer ( const MemoryBuffer< T, StaticCapacity > &  buffer)
delete

◆ MemoryBuffer() [3/3]

template<typename T, std::size_t StaticCapacity>
mage::MemoryBuffer< T, StaticCapacity >::MemoryBuffer ( MemoryBuffer< T, StaticCapacity > &&  buffer)
defaultnoexcept

◆ ~MemoryBuffer()

template<typename T, std::size_t StaticCapacity>
mage::MemoryBuffer< T, StaticCapacity >::~MemoryBuffer ( )
default

Member Function Documentation

◆ at() [1/2]

template<typename T, std::size_t StaticCapacity>
reference mage::MemoryBuffer< T, StaticCapacity >::at ( size_type  index)

◆ at() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reference mage::MemoryBuffer< T, StaticCapacity >::at ( size_type  index) const

◆ back() [1/2]

template<typename T, std::size_t StaticCapacity>
reference mage::MemoryBuffer< T, StaticCapacity >::back ( )
noexcept

◆ back() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reference mage::MemoryBuffer< T, StaticCapacity >::back ( ) const
noexcept

◆ begin() [1/2]

template<typename T, std::size_t StaticCapacity>
iterator mage::MemoryBuffer< T, StaticCapacity >::begin ( )
noexcept

◆ begin() [2/2]

template<typename T, std::size_t StaticCapacity>
const_iterator mage::MemoryBuffer< T, StaticCapacity >::begin ( ) const
noexcept

◆ capacity()

template<typename T, std::size_t StaticCapacity>
size_type mage::MemoryBuffer< T, StaticCapacity >::capacity ( ) const
noexcept

◆ cbegin()

template<typename T, std::size_t StaticCapacity>
const_iterator mage::MemoryBuffer< T, StaticCapacity >::cbegin ( ) const
noexcept

◆ cend()

template<typename T, std::size_t StaticCapacity>
const_iterator mage::MemoryBuffer< T, StaticCapacity >::cend ( ) const
noexcept

◆ crbegin()

template<typename T, std::size_t StaticCapacity>
const_reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::crbegin ( ) const
noexcept

◆ crend()

template<typename T, std::size_t StaticCapacity>
const_reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::crend ( ) const
noexcept

◆ data() [1/2]

template<typename T, std::size_t StaticCapacity>
T* mage::MemoryBuffer< T, StaticCapacity >::data ( )
noexcept

◆ data() [2/2]

template<typename T, std::size_t StaticCapacity>
const T* mage::MemoryBuffer< T, StaticCapacity >::data ( ) const
noexcept

◆ emplace_back()

template<typename T, std::size_t StaticCapacity>
template<typename... Args>
void mage::MemoryBuffer< T, StaticCapacity >::emplace_back ( Args &&...  args)

◆ empty()

template<typename T, std::size_t StaticCapacity>
bool mage::MemoryBuffer< T, StaticCapacity >::empty ( ) const
noexcept

◆ end() [1/2]

template<typename T, std::size_t StaticCapacity>
iterator mage::MemoryBuffer< T, StaticCapacity >::end ( )
noexcept

◆ end() [2/2]

template<typename T, std::size_t StaticCapacity>
const_iterator mage::MemoryBuffer< T, StaticCapacity >::end ( ) const
noexcept

◆ front() [1/2]

template<typename T, std::size_t StaticCapacity>
reference mage::MemoryBuffer< T, StaticCapacity >::front ( )
noexcept

◆ front() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reference mage::MemoryBuffer< T, StaticCapacity >::front ( ) const
noexcept

◆ full()

template<typename T, std::size_t StaticCapacity>
bool mage::MemoryBuffer< T, StaticCapacity >::full ( ) const
noexcept

◆ max_size()

template<typename T, std::size_t StaticCapacity>
size_type mage::MemoryBuffer< T, StaticCapacity >::max_size ( ) const
noexcept

◆ operator=() [1/2]

template<typename T, std::size_t StaticCapacity>
MemoryBuffer& mage::MemoryBuffer< T, StaticCapacity >::operator= ( const MemoryBuffer< T, StaticCapacity > &  buffer)
delete

◆ operator=() [2/2]

template<typename T, std::size_t StaticCapacity>
MemoryBuffer& mage::MemoryBuffer< T, StaticCapacity >::operator= ( MemoryBuffer< T, StaticCapacity > &&  buffer)
delete

◆ operator[]() [1/2]

template<typename T, std::size_t StaticCapacity>
reference mage::MemoryBuffer< T, StaticCapacity >::operator[] ( size_type  index)
noexcept

◆ operator[]() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reference mage::MemoryBuffer< T, StaticCapacity >::operator[] ( size_type  index) const
noexcept

◆ push_back() [1/2]

template<typename T, std::size_t StaticCapacity>
void mage::MemoryBuffer< T, StaticCapacity >::push_back ( const T &  value)

◆ push_back() [2/2]

template<typename T, std::size_t StaticCapacity>
void mage::MemoryBuffer< T, StaticCapacity >::push_back ( T &&  value)

◆ rbegin() [1/2]

template<typename T, std::size_t StaticCapacity>
reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::rbegin ( )
noexcept

◆ rbegin() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::rbegin ( ) const
noexcept

◆ rend() [1/2]

template<typename T, std::size_t StaticCapacity>
reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::rend ( )
noexcept

◆ rend() [2/2]

template<typename T, std::size_t StaticCapacity>
const_reverse_iterator mage::MemoryBuffer< T, StaticCapacity >::rend ( ) const
noexcept

◆ reserve()

template<typename T, std::size_t StaticCapacity>
void mage::MemoryBuffer< T, StaticCapacity >::reserve ( size_type  new_capacity)

◆ resize()

template<typename T, std::size_t StaticCapacity>
void mage::MemoryBuffer< T, StaticCapacity >::resize ( size_type  count)

◆ size()

template<typename T, std::size_t StaticCapacity>
size_type mage::MemoryBuffer< T, StaticCapacity >::size ( ) const
noexcept

◆ swap()

template<typename T, std::size_t StaticCapacity>
void mage::MemoryBuffer< T, StaticCapacity >::swap ( MemoryBuffer< T, StaticCapacity > &  other)
noexcept

◆ UsesDynamicMemoryBuffer()

template<typename T, std::size_t StaticCapacity>
bool mage::MemoryBuffer< T, StaticCapacity >::UsesDynamicMemoryBuffer ( ) const
noexcept

◆ UsesStaticMemoryBuffer()

template<typename T, std::size_t StaticCapacity>
bool mage::MemoryBuffer< T, StaticCapacity >::UsesStaticMemoryBuffer ( ) const
noexcept

Member Data Documentation

◆ m_dynamic_data

template<typename T, std::size_t StaticCapacity>
DynamicMemoryBuffer< T > mage::MemoryBuffer< T, StaticCapacity >::m_dynamic_data
private

◆ m_static_data

template<typename T, std::size_t StaticCapacity>
StaticMemoryBuffer< T, StaticCapacity > mage::MemoryBuffer< T, StaticCapacity >::m_static_data
private