MAGE  v0.171.0
Matthias Advanced Game Engine
mage::Array< T, N, A, typename > Struct Template Reference

#include <array.hpp>

Inheritance diagram for mage::Array< T, N, A, typename >:
mage::RGB mage::SRGBA

Public Member Functions

constexpr Array () noexcept
 
constexpr Array (const T &value) noexcept
 
template<typename... ArgsT, typename = std::enable_if_t< (N == sizeof...(ArgsT)) >>
constexpr Array (ArgsT &&... args) noexcept
 
template<std::size_t FromN>
constexpr Array (const Array< T, FromN, A > &a) noexcept
 
template<std::size_t FromN, std::size_t FromA>
constexpr Array (const Array< T, FromN, FromA > &a) noexcept
 
template<std::size_t FromN, typename... ArgsT>
constexpr Array (const Array< T, FromN, A > &a, ArgsT &&... args) noexcept
 
template<std::size_t FromN, std::size_t FromA, typename... ArgsT>
constexpr Array (const Array< T, FromN, FromA > &a, ArgsT &&... args) noexcept
 
constexpr Array (const Array &a) noexcept=default
 
constexpr Array (Array &&a) noexcept=default
 
template<typename FromT , std::size_t FromA, typename = std::enable_if_t< std::is_convertible_v< FromT, T > >>
constexpr Array (const Array< FromT, N, FromA > &a) noexcept
 
 ~Array ()=default
 
Arrayoperator= (const Array &a) noexcept=default
 
Arrayoperator= (Array &&a) noexcept=default
 

Static Public Attributes

static constexpr std::size_t s_size = N
 

Constructor & Destructor Documentation

◆ Array() [1/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
constexpr mage::Array< T, N, A, typename >::Array ( )
noexcept

◆ Array() [2/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
constexpr mage::Array< T, N, A, typename >::Array ( const T &  value)
explicitnoexcept

◆ Array() [3/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<typename... ArgsT, typename = std::enable_if_t< (N == sizeof...(ArgsT)) >>
constexpr mage::Array< T, N, A, typename >::Array ( ArgsT &&...  args)
noexcept

◆ Array() [4/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<std::size_t FromN>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< T, FromN, A > &  a)
noexcept

◆ Array() [5/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<std::size_t FromN, std::size_t FromA>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< T, FromN, FromA > &  a)
explicitnoexcept

◆ Array() [6/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<std::size_t FromN, typename... ArgsT>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< T, FromN, A > &  a,
ArgsT &&...  args 
)
noexcept

◆ Array() [7/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<std::size_t FromN, std::size_t FromA, typename... ArgsT>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< T, FromN, FromA > &  a,
ArgsT &&...  args 
)
explicitnoexcept

◆ Array() [8/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< T, N, A, typename > &  a)
defaultnoexcept

◆ Array() [9/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
constexpr mage::Array< T, N, A, typename >::Array ( Array< T, N, A, typename > &&  a)
defaultnoexcept

◆ Array() [10/10]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
template<typename FromT , std::size_t FromA, typename = std::enable_if_t< std::is_convertible_v< FromT, T > >>
constexpr mage::Array< T, N, A, typename >::Array ( const Array< FromT, N, FromA > &  a)
explicitnoexcept

◆ ~Array()

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
mage::Array< T, N, A, typename >::~Array ( )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
Array& mage::Array< T, N, A, typename >::operator= ( const Array< T, N, A, typename > &  a)
defaultnoexcept

◆ operator=() [2/2]

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
Array& mage::Array< T, N, A, typename >::operator= ( Array< T, N, A, typename > &&  a)
defaultnoexcept

Member Data Documentation

◆ s_size

template<typename T, std::size_t N, std::size_t A = alignof(T), typename = std::enable_if_t< (N > 1u>
constexpr std::size_t mage::Array< T, N, A, typename >::s_size = N
static