10 #include <initializer_list> 18 template <
typename T, FwSizeType S>
24 static_assert(std::is_default_constructible<T>::value,
"T must be default constructible");
25 static_assert(S > 0,
"array size must be greater than zero");
44 Array(
const std::initializer_list<T>& il
79 FW_ASSERT(i < S, static_cast<FwAssertArgType>(i));
80 return this->m_elements[i];
87 FW_ASSERT(i < S, static_cast<FwAssertArgType>(i));
88 return this->m_elements[i];
99 for (
const auto& e : il) {
100 FW_ASSERT(i < S, static_cast<FwAssertArgType>(i), static_cast<FwAssertArgType>(S));
101 this->m_elements[i] = e;
112 this->m_elements[i] = elements[i];
121 this->m_elements[i] = element;
131 this->m_elements[i] = a.m_elements[i];
PlatformSizeType FwSizeType
Array(const Array< T, S > &a)
Copy constructor.
Array(const Elements &elements)
Primitive array constructor.
Array< T, S > & operator=(const Elements &elements)
Array< T, S > & operator=(const T &element)
operator= (single element)
~Array()=default
Destructor.
T[S] Elements
The type of the elements array.
Array(const T &element)
Single-element constructor.
Array< T, S > & operator=(const std::initializer_list< T > &il)
ExternalArray< T > asExternalArray()
Convert this array to an ExternalArray.
Array(const std::initializer_list< T > &il)
Initializer list constructor.
const Elements & getElements() const
Array()=default
Zero-argument constructor.
Array< T, S > & operator=(const Array< T, S > &a)
T & operator[](FwSizeType i)
const T & operator[](FwSizeType i) const
PlatformAssertArgType FwAssertArgType
The type of arguments to assert functions.