34template<
typename blDataType,
size_t blArraySize>
62 blArray(std::initializer_list<blDataType> theList);
69 template<
typename blDataType2,
size_t blArraySize2>
75 template<
typename blDataType2,
size_t blArraySize2>
76 blArray(
const blDataType2 (&staticArray)[blArraySize2]);
81 template<
typename blIteratorType>
82 blArray(blIteratorType sourceBegin,
83 blIteratorType sourceEnd);
95 template<
typename blDataType2,
size_t blArraySize2>
100 template<
typename blDataType2,
size_t blArraySize2>
114 blDataType&
operator[](
const size_t elementIndex);
115 const blDataType&
operator[](
const size_t elementIndex)
const;
138 void fill(
const blDataType& value);
146 const blDataType&
front()
const;
149 const blDataType&
back()
const;
156 const blDataType*
data()
const;
157 const blDataType*
c_str()
const;
191template<
typename blDataType,
size_t blArraySize>
199template<
typename blDataType,
size_t blArraySize>
202 auto Iter1 = this->
begin();
203 auto Iter2 = theList.begin();
206 Iter1 != this->
end(),Iter2 != theList.end();
216template<
typename blDataType,
size_t blArraySize>
217template<
typename blDataType2,
size_t blArraySize2>
220 auto Iter1 = this->
begin();
221 auto Iter2 = array.
begin();
224 Iter1 != this->
end(),Iter2 != array.
end();
234template<
typename blDataType,
size_t blArraySize>
235template<
typename blDataType2,
size_t blArraySize2>
238 auto Iter1 = this->
begin();
241 Iter1 != this->
end(), i < blArraySize2;
244 (*Iter1) = staticArray[i];
251template<
typename blDataType,
size_t blArraySize>
252template<
typename blIteratorType>
254 blIteratorType sourceEnd) : m_nullChar(0)
256 auto Iter1 = this->
begin();
259 Iter1 != this->
end(),sourceBegin != sourceEnd;
262 (*Iter1) = (*sourceBegin);
269template<
typename blDataType,
size_t blArraySize>
270template<
typename blDataType2,
size_t blArraySize2>
275 auto iter1 = this->begin();
276 auto iter2 = array.
begin();
279 iter1 != this->end(),iter2 != array.
end();
292template<
typename blDataType,
size_t blArraySize>
295 auto Iter1 = this->begin();
296 auto Iter2 = theList.begin();
299 Iter1 != this->end(),Iter2 != theList.end();
311template<
typename blDataType,
size_t blArraySize>
317 auto iter1 = cbegin();
318 auto iter2 = array.
cbegin();
324 if((*iter1) != (*iter2))
334template<
typename blDataType,
size_t blArraySize>
337 return !( (*this) == array );
343template<
typename blDataType,
size_t blArraySize>
346 return m_container[elementIndex];
352template<
typename blDataType,
size_t blArraySize>
355 return m_container[elementIndex];
361template<
typename blDataType,
size_t blArraySize>
370template<
typename blDataType,
size_t blArraySize>
379template<
typename blDataType,
size_t blArraySize>
388template<
typename blDataType,
size_t blArraySize>
391 return (blArraySize != 0);
397template<
typename blDataType,
size_t blArraySize>
400 blDataType TempValue;
402 for(
size_t i = 0; i < blArraySize; ++i)
404 TempValue = m_container[i];
405 m_container[i] = Array[i];
406 Array[i] = TempValue;
413template<
typename blDataType,
size_t blArraySize>
416 for(
size_t i = 0; i < blArraySize; ++i)
417 m_container[i] = value;
423template<
typename blDataType,
size_t blArraySize>
426 return m_container[0];
432template<
typename blDataType,
size_t blArraySize>
435 return m_container[0];
441template<
typename blDataType,
size_t blArraySize>
444 return m_container[blArraySize - 1];
450template<
typename blDataType,
size_t blArraySize>
453 return m_container[blArraySize - 1];
459template<
typename blDataType,
size_t blArraySize>
462 return &m_container[0];
468template<
typename blDataType,
size_t blArraySize>
471 return &m_container[0];
477template<
typename blDataType,
size_t blArraySize>
480 return &m_container[0];
488template<
typename blDataType,
size_t blArraySize>
491 return &(m_container[0]);
494template<
typename blDataType,
size_t blArraySize>
497 return &(m_container[blArraySize]);
499template<
typename blDataType,
size_t blArraySize>
502 return &(m_container[0]);
505template<
typename blDataType,
size_t blArraySize>
508 return &(m_container[blArraySize]);
510template<
typename blDataType,
size_t blArraySize>
513 return &(m_container[blArraySize - 1]);
516template<
typename blDataType,
size_t blArraySize>
519 return &(m_container[-1]);
521template<
typename blDataType,
size_t blArraySize>
524 return &(m_container[blArraySize - 1]);
527template<
typename blDataType,
size_t blArraySize>
530 return &(m_container[-1]);
540template<
typename blDataType,
size_t blArraySize>
553template<
typename blDataType,
size_t blArraySize>
556 return blArray<blDataType,blArraySize - 1>(staticArray);
blArray< blDataType, blArraySize > getArray(const blDataType(&staticArray)[blArraySize])
blArray< blDataType, blArraySize - 1 > getArrayFromNullTerminated(const blDataType(&staticArray)[blArraySize])
blArray< blDataType, blArraySize > & operator=(const blArray< blDataType, blArraySize > &array)=default
const_reverse_iterator crbegin() const
blArray< blDataType, blArraySize > & operator=(const blDataType2(&staticArray)[blArraySize2])
void swap(const blArray< blDataType, blArraySize > &Array)
blDataType m_container[blArraySize]
void fill(const blDataType &value)
const_iterator cbegin() const
blRawReverseIterator< blDataType > reverse_iterator
blRawIterator< blDataType > iterator
bool operator==(const blArray< blDataType, blArraySize > &array) const
const blDataType * c_str() const
blRawReverseIterator< const blDataType > const_reverse_iterator
bool operator!=(const blArray< blDataType, blArraySize > &array) const
blArray(const blArray< blDataType, blArraySize > &array)=default
blDataType & operator[](const size_t elementIndex)
blArray(blArray< blDataType, blArraySize > &&array)=default
const_reverse_iterator crend() const
const_iterator cend() const
reverse_iterator rbegin()
blRawIterator< const blDataType > const_iterator