xentara-utils v2.0.4
The Xentara Utility Library
Loading...
Searching...
No Matches
xentara::utils::core::StaticVector< Element, kCapacity > Class Template Referencefinal

A vector that uses a statically allocated buffer for the data. More...

#include <xentara/utils/core/StaticVector.hpp>

Public Types

using value_type = Element
 The element type.
 
using size_type = std::size_t
 The type used for sizes.
 
using difference_type = std::ptrdiff_t
 The type used for distances.
 
using reference = value_type &
 A reference to an element.
 
using const_reference = const value_type &
 A const reference to an element.
 
using pointer = value_type *
 A pointer to an element.
 
using const_pointer = const value_type *
 A const pointer to an element.
 
using iterator = ContiguousIterator< pointer, StaticVector >
 An iterator.
 
using const_iterator = ContiguousIterator< const_pointer, StaticVector >
 A const iterator.
 
using reverse_iterator = std::reverse_iterator< iterator >
 An iterator for iterating in reverse order.
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 A const iterator for iterating in reverse order.
 

Public Member Functions

internal constexpr auto operator= (const StaticVector &rhs) -> StaticVector &
 Assignment operator.
 
constexpr auto operator= (StaticVector &&rhs) noexcept(std::is_nothrow_move_constructible_v< Element >) -> StaticVector &
 Move-Assignment operator.
 
constexpr auto operator= (std::initializer_list< Element > values) -> StaticVector &
 Assignment operator for an initializer list.
 
constexpr auto assign (size_type size, const Element &value) -> void
 Fills the vector with a certain value.
 
template<std::input_iterator InputIterator>
constexpr auto assign (InputIterator first, InputIterator last) -> void
 Copies a range of elements.
 
constexpr auto assign (std::initializer_list< Element > values) -> void
 Constructor that initializes the elements using an initializer list.
 
constexpr auto operator== (const StaticVector &rhs) const noexcept -> bool
 Equality operator.
 
constexpr auto operator<=> (const StaticVector &rhs) const noexcept -> std::compare_three_way_result_t< value_type >
 Three-Way-Comparison operator.
 
Constructors
constexpr StaticVector () noexcept=default
 Default constructor.
 
constexpr StaticVector (size_type size)
 Constructor that creates a vector of a certain size.
 
constexpr StaticVector (size_type size, const Element &value)
 Constructor that fills the vector with a certain value.
 
template<std::input_iterator InputIterator>
constexpr StaticVector (InputIterator first, InputIterator last)
 Constructor that copies a range of elements.
 
constexpr StaticVector (std::initializer_list< Element > values)
 Constructor that initializes the elements using an initializer list.
 
constexpr StaticVector (const StaticVector &other)
 Copy constructor.
 
constexpr StaticVector (StaticVector &&other) noexcept(std::is_nothrow_move_constructible_v< Element >)
 Move constructor.
 
Element Access
constexpr auto at (size_type index) const -> const_reference
 Accesses the element at a certain index.
 
constexpr auto at (size_type index) -> reference
 Accesses the element at a certain index.
 
constexpr auto operator[] (size_type index) const noexcept -> const_reference
 Subscript operator.
 
constexpr auto operator[] (size_type index) noexcept -> reference
 Subscript operator.
 
constexpr auto front () const noexcept -> const_reference
 Returns the first element.
 
constexpr auto front () noexcept -> reference
 Returns the first element.
 
constexpr auto back () const noexcept -> const_reference
 Returns the last element.
 
constexpr auto back () noexcept -> reference
 Returns the last element.
 
constexpr auto data () const noexcept -> const value_type *
 Raw access to the data.
 
constexpr auto data () noexcept -> value_type *
 Raw access to the data.
 
Iterators
constexpr auto begin () noexcept -> iterator
 Creates a begin iterator.
 
constexpr auto begin () const noexcept -> const_iterator
 Creates a begin iterator.
 
constexpr auto cbegin () const noexcept -> const_iterator
 Creates a begin iterator.
 
constexpr auto end () noexcept -> iterator
 Creates an end iterator.
 
constexpr auto end () const noexcept -> const_iterator
 Creates an end iterator.
 
constexpr auto cend () const noexcept -> const_iterator
 Creates an end iterator.
 
constexpr auto rbegin () noexcept -> reverse_iterator
 Creates a reverse begin iterator.
 
constexpr auto rbegin () const noexcept -> const_reverse_iterator
 Creates a reverse begin iterator.
 
constexpr auto crbegin () const noexcept -> const_reverse_iterator
 Creates a reverse begin iterator.
 
constexpr auto rend () noexcept -> reverse_iterator
 Creates a reverse end iterator.
 
constexpr auto rend () const noexcept -> const_reverse_iterator
 Creates a reverse end iterator.
 
constexpr auto crend () const noexcept -> const_reverse_iterator
 Creates a reverse end iterator.
 
Capacity
constexpr auto empty () const noexcept -> bool
 Determines whether the data is empty.
 
constexpr auto size () const noexcept -> size_type
 Gets the size of the data.
 
constexpr auto max_size () const noexcept -> size_type
 Gets the maximum possible data size.
 
constexpr auto capacity () const noexcept -> size_type
 Gets the capacity of the data.
 
Modifiers
constexpr auto clear () noexcept -> void
 Erases all elements.
 
constexpr auto insert (const_iterator where, const Element &value) -> iterator
 Inserts an element at a certain position.
 
constexpr auto insert (const_iterator where, Element &&value) -> iterator
 Move-Inserts an element at a certain position.
 
constexpr auto insert (const_iterator where, size_type count, const Element &value) -> iterator
 Inserts a number of copies of a element at a certain position.
 
template<std::input_iterator InputIterator>
constexpr auto insert (const_iterator where, InputIterator first, InputIterator last) -> iterator
 Inserts a range of values at a certain position.
 
constexpr auto insert (const_iterator where, std::initializer_list< Element > values) -> iterator
 Inserts a list of values at a certain position.
 
template<typename... Arguments>
constexpr auto emplace (const_iterator where, Arguments &&... arguments) -> iterator
 Creates an element at a certain position.
 
constexpr auto erase (const_iterator position) -> iterator
 Removes an element from the vector.
 
constexpr auto erase (const_iterator first, const_iterator last) -> iterator
 Removes a range of elements from the vector.
 
constexpr auto push_back (const Element &value) -> void
 Appends an element to the back of the vector.
 
constexpr auto push_back (Element &&value) -> void
 Move-Appends an element to the back of the vector.
 
template<typename... Arguments>
constexpr auto emplace_back (Arguments &&... arguments) -> reference
 Appends a newly created element to the back of the vector.
 
constexpr auto pop_back () -> void
 Removes the last element.
 
constexpr auto resize (size_type newSize) -> void
 Resizes the vector.
 
constexpr auto resize (size_type newSize, const value_type &fillValue) -> void
 Resizes the vector.
 
constexpr auto swap (StaticVector &other) noexcept(std::is_nothrow_swappable_v< Element > &&std::is_nothrow_move_constructible_v< Element > &&std::is_nothrow_destructible_v< Element >) -> void
 Swaps the contents of this vector with another vector.
 

Detailed Description

template<typename Element, std::size_t kCapacity>
class xentara::utils::core::StaticVector< Element, kCapacity >

A vector that uses a statically allocated buffer for the data.

This class behaves just like std::vector, but doesn't require any heap allocation. Instead, the string data is allocated in a static buffer of a fixed size.

Template Parameters
ElementThe type for the elements
kCapacityThe capacity of the vector

Member Typedef Documentation

◆ const_iterator

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::const_iterator = ContiguousIterator<const_pointer, StaticVector>

A const iterator.

◆ const_pointer

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::const_pointer = const value_type *

A const pointer to an element.

◆ const_reference

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::const_reference = const value_type &

A const reference to an element.

◆ const_reverse_iterator

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::const_reverse_iterator = std::reverse_iterator<const_iterator>

A const iterator for iterating in reverse order.

◆ difference_type

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::difference_type = std::ptrdiff_t

The type used for distances.

◆ iterator

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::iterator = ContiguousIterator<pointer, StaticVector>

An iterator.

◆ pointer

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::pointer = value_type *

A pointer to an element.

◆ reference

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::reference = value_type &

A reference to an element.

◆ reverse_iterator

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::reverse_iterator = std::reverse_iterator<iterator>

An iterator for iterating in reverse order.

◆ size_type

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::size_type = std::size_t

The type used for sizes.

◆ value_type

template<typename Element , std::size_t kCapacity>
using xentara::utils::core::StaticVector< Element, kCapacity >::value_type = Element

The element type.

Constructor & Destructor Documentation

◆ StaticVector() [1/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( )
constexprdefaultnoexcept

Default constructor.

Constructs an empty vector.

◆ StaticVector() [2/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( size_type  size)
explicitconstexpr

Constructor that creates a vector of a certain size.

Creates a vector of the given size and fills it with default-inserted values.

Parameters
sizeThe number of entries to create room for

◆ StaticVector() [3/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( size_type  size,
const Element &  value 
)
constexpr

Constructor that fills the vector with a certain value.

Creates a vector of the given size and fills it with the given value.

Parameters
sizeThe number of entries to create
valueThe value to set the entries to

◆ StaticVector() [4/7]

template<typename Element , std::size_t kCapacity>
template<std::input_iterator InputIterator>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( InputIterator  first,
InputIterator  last 
)
constexpr

Constructor that copies a range of elements.

Creates a vector that holds copies of the given input range.

Parameters
firstThe first element to copy
lastThe position after the last element to copy

◆ StaticVector() [5/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( std::initializer_list< Element >  values)
constexpr

Constructor that initializes the elements using an initializer list.

Parameters
valuesThe values to initialize the elements to

◆ StaticVector() [6/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( const StaticVector< Element, kCapacity > &  other)
constexpr

Copy constructor.

◆ StaticVector() [7/7]

template<typename Element , std::size_t kCapacity>
constexpr xentara::utils::core::StaticVector< Element, kCapacity >::StaticVector ( StaticVector< Element, kCapacity > &&  other) const
constexprnoexcept

Move constructor.

This constructor moves all the element from other into this vector.

Attention
Since the vector uses statically allocated storage, only the elements are moved, not the storage. This means that, contrary to std::vector, iterators and references referring to elements in other will continue to refer to elements in other, rather than the moved elements in the new vector.
Parameters
otherThe vector from which to move the elements

Member Function Documentation

◆ assign() [1/3]

template<typename Element , std::size_t kCapacity>
template<std::input_iterator InputIterator>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::assign ( InputIterator  first,
InputIterator  last 
) -> void
constexpr

Copies a range of elements.

Replaces the contents of the vector with a given input range.

Parameters
firstThe first element to copy
lastThe position after the last element to copy

◆ assign() [2/3]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::assign ( size_type  size,
const Element &  value 
) -> void
constexpr

Fills the vector with a certain value.

Resizes the vector to the given size and fills it with the given value.

Parameters
sizeThe number of entries to create
valueThe value to set the entries to

◆ assign() [3/3]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::assign ( std::initializer_list< Element >  values) -> void
constexpr

Constructor that initializes the elements using an initializer list.

Replaces the contents of the vector with the contents of an initializer list.

Parameters
valuesThe initializer list

◆ at() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::at ( size_type  index) -> reference
constexpr

Accesses the element at a certain index.

Parameters
indexThe index
Returns
A reference to the element at the given index
Exceptions
std::out_of_rangeindex is out of range

◆ at() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::at ( size_type  index) const -> const_reference
constexpr

Accesses the element at a certain index.

Parameters
indexThe index
Returns
A reference to the element at the given index
Exceptions
std::out_of_rangeindex is out of range

◆ back() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::back ( ) const -> const_reference
constexprnoexcept

Returns the last element.

Note
Must not be called on an empty vector
Returns
A reference to last element

◆ back() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::back ( ) -> reference
constexprnoexcept

Returns the last element.

Note
Must not be called on an empty vector
Returns
A reference to last element

◆ begin() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::begin ( ) const -> const_iterator
constexprnoexcept

Creates a begin iterator.

Returns
An iterator pointing at the first element, or end(), if the data is empty

◆ begin() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::begin ( ) -> iterator
constexprnoexcept

Creates a begin iterator.

Returns
An iterator pointing at the first element, or end(), if the data is empty

◆ capacity()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::capacity ( ) const -> size_type
constexprnoexcept

Gets the capacity of the data.

Returns
The total number of elements the object can hold

◆ cbegin()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::cbegin ( ) const -> const_iterator
constexprnoexcept

Creates a begin iterator.

Returns
An iterator pointing at the first element, or end(), if the data is empty

◆ cend()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::cend ( ) const -> const_iterator
constexprnoexcept

Creates an end iterator.

Returns
An iterator pointing at the position past the last element

◆ clear()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::clear ( ) -> void
constexprnoexcept

Erases all elements.

◆ crbegin()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::crbegin ( ) const -> const_reverse_iterator
constexprnoexcept

Creates a reverse begin iterator.

Returns
A reverse iterator pointing at the last element, or rend(), if the data is empty

◆ crend()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::crend ( ) const -> const_reverse_iterator
constexprnoexcept

Creates a reverse end iterator.

Returns
A reverse iterator pointing at the position before the first element

◆ data() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::data ( ) const -> const value_type *
constexprnoexcept

Raw access to the data.

Returns a pointer to the underlying array that serves as element storage.

Returns
A pointer to the first element. If the array is empty, the pointer is not dereferencable.

◆ data() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::data ( ) -> value_type *
constexprnoexcept

Raw access to the data.

Returns a pointer to the underlying array that serves as element storage.

Returns
A pointer to the first element. If the array is empty, the pointer is not dereferencable.

◆ emplace()

template<typename Element , std::size_t kCapacity>
template<typename... Arguments>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::emplace ( const_iterator  where,
Arguments &&...  arguments 
) -> iterator
constexpr

Creates an element at a certain position.

Parameters
whereThe desired position of the new element. Must be a position within the vector, or cend() to append the element.
argumentsThe arguments to pass to the element's constructor
Returns
The position of the new element

◆ emplace_back()

template<typename Element , std::size_t kCapacity>
template<typename... Arguments>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::emplace_back ( Arguments &&...  arguments) -> reference
constexpr

Appends a newly created element to the back of the vector.

Parameters
argumentsThe arguments to pass to the element's constructor
Returns
A reference to the new value

◆ empty()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::empty ( ) const -> bool
constexprnoexcept

Determines whether the data is empty.

Returns
Whether the data is empty

◆ end() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::end ( ) const -> const_iterator
constexprnoexcept

Creates an end iterator.

Returns
An iterator pointing at the position past the last element

◆ end() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::end ( ) -> iterator
constexprnoexcept

Creates an end iterator.

Returns
An iterator pointing at the position past the last element

◆ erase() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::erase ( const_iterator  first,
const_iterator  last 
) -> iterator
constexpr

Removes a range of elements from the vector.

Parameters
firstAn iterator to the first element to remove
lastAn iterator one position past the last element to remove
Returns
An iterator to the element after the last removed one.

◆ erase() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::erase ( const_iterator  position) -> iterator
constexpr

Removes an element from the vector.

Parameters
positionThe position of the element to remove. Must point to a valid element.
Returns
An iterator to the element after the removed one.

◆ front() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::front ( ) const -> const_reference
constexprnoexcept

Returns the first element.

Note
Must not be called on an empty vector
Returns
A reference to first element

◆ front() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::front ( ) -> reference
constexprnoexcept

Returns the first element.

Note
Must not be called on an empty vector
Returns
A reference to first element

◆ insert() [1/5]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::insert ( const_iterator  where,
const Element &  value 
) -> iterator
constexpr

Inserts an element at a certain position.

Parameters
whereThe desired position of the new element. Must be a position within the vector, or cend() to append the element.
valueThe value to insert
Returns
The position of the new element

◆ insert() [2/5]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::insert ( const_iterator  where,
Element &&  value 
) -> iterator
constexpr

Move-Inserts an element at a certain position.

Parameters
whereThe desired position of the new element. Must be a position within the vector, or cend() to append the element.
valueThe value to move
Returns
The position of the new element

◆ insert() [3/5]

template<typename Element , std::size_t kCapacity>
template<std::input_iterator InputIterator>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::insert ( const_iterator  where,
InputIterator  first,
InputIterator  last 
) -> iterator
constexpr

Inserts a range of values at a certain position.

Parameters
whereThe desired position of the first new element. Must be a position within the vector, or cend() to append the elements.
firstAn iterator to the first value to insert
lastAn iterator one position past the last value to insert
Returns
The position of the first new element

◆ insert() [4/5]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::insert ( const_iterator  where,
size_type  count,
const Element &  value 
) -> iterator
constexpr

Inserts a number of copies of a element at a certain position.

Parameters
whereThe desired position of the first new element. Must be a position within the vector, or cend() to append the elements.
countThe number of copies to insert
valueThe value to insert
Returns
The position of the first new element

◆ insert() [5/5]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::insert ( const_iterator  where,
std::initializer_list< Element >  values 
) -> iterator
constexpr

Inserts a list of values at a certain position.

Parameters
whereThe desired position of the first new element. Must be a position within the vector, or cend() to append the elements.
valuesThe values to insert
Returns
The position of the first new element

◆ max_size()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::max_size ( ) const -> size_type
constexprnoexcept

Gets the maximum possible data size.

Returns
The maximum data size. Thgis is always the same as the capacity

◆ operator<=>()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator<=> ( const StaticVector< Element, kCapacity > &  rhs) const -> std::compare_three_way_result_t<value_type>
constexprnoexcept

Three-Way-Comparison operator.

Performs a lexicographical comparison of the elements of two vectors

◆ operator=() [1/3]

template<typename Element , std::size_t kCapacity>
internal constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator= ( const StaticVector< Element, kCapacity > &  rhs) -> StaticVector &
constexpr

Assignment operator.

◆ operator=() [2/3]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator= ( StaticVector< Element, kCapacity > &&  rhs) const -> StaticVector &
constexprnoexcept

Move-Assignment operator.

Destroys any existing elements and moves all the element from other to this vector.

Attention
Since the vector uses statically allocated storage, only the elements are moved, not the storage. This means that, contrary to std::vector, iterators and references referring to elements in other will continue to refer to elements in other, rather than the moved elements in this vector.
Parameters
rhsThe vector from which to move the elements
Returns
A reference to this vector

◆ operator=() [3/3]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator= ( std::initializer_list< Element >  values) -> StaticVector &
constexpr

Assignment operator for an initializer list.

Parameters
valuesThe values to assign
Returns
A reference to this vector

◆ operator==()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator== ( const StaticVector< Element, kCapacity > &  rhs) const -> bool
constexprnoexcept

Equality operator.

Tests the contents of two vectors for equality

◆ operator[]() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator[] ( size_type  index) const -> const_reference
constexprnoexcept

Subscript operator.

Returns a reference to the element at a certain index

Parameters
indexThe index
Returns
A reference to the value at the given offset

◆ operator[]() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::operator[] ( size_type  index) -> reference
constexprnoexcept

Subscript operator.

Returns a reference to the element at a certain index

Parameters
indexThe index
Returns
A reference to the value at the given offset

◆ pop_back()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::pop_back ( ) -> void
constexpr

Removes the last element.

Note
Must not be called on an empty vector

◆ push_back() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::push_back ( const Element &  value) -> void
constexpr

Appends an element to the back of the vector.

Parameters
valueThe value to insert

◆ push_back() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::push_back ( Element &&  value) -> void
constexpr

Move-Appends an element to the back of the vector.

Parameters
valueThe value to move

◆ rbegin() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::rbegin ( ) const -> const_reverse_iterator
constexprnoexcept

Creates a reverse begin iterator.

Returns
A reverse iterator pointing at the last element, or rend(), if the data is empty

◆ rbegin() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::rbegin ( ) -> reverse_iterator
constexprnoexcept

Creates a reverse begin iterator.

Returns
A reverse iterator pointing at the last element, or rend(), if the data is empty

◆ rend() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::rend ( ) const -> const_reverse_iterator
constexprnoexcept

Creates a reverse end iterator.

Returns
A reverse iterator pointing at the position before the first element

◆ rend() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::rend ( ) -> reverse_iterator
constexprnoexcept

Creates a reverse end iterator.

Returns
A reverse iterator pointing at the position before the first element

◆ resize() [1/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::resize ( size_type  newSize) -> void
constexpr

Resizes the vector.

Grows or shrinks the vector to a new size. If the new size is greater than the old size, the new elements are default-inserted.

Note
This function does not invalidate any but the end iterator.
Parameters
newSizeThe new size for the vector.

◆ resize() [2/2]

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::resize ( size_type  newSize,
const value_type fillValue 
) -> void
constexpr

Resizes the vector.

Grows or shrinks the vector to a new size. If the new size is greater than the old size, the new elements are filled with copies of fillValue.

Note
This function does not invalidate any but the end iterator.
Parameters
newSizeThe new size for the vector.
fillValueThe value that should be used to initialize new element.

◆ size()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::size ( ) const -> size_type
constexprnoexcept

Gets the size of the data.

Returns
The number of elements contained in the data

◆ swap()

template<typename Element , std::size_t kCapacity>
constexpr auto xentara::utils::core::StaticVector< Element, kCapacity >::swap ( StaticVector< Element, kCapacity > &  other) const && -> void
constexprnoexcept

Swaps the contents of this vector with another vector.

This function will propagate any exception thrown when swapping or transferring the individual elements. It does not have a strong exception guarantee, however: if an exception is thrown, both vectors will remain in a valid but unspecified state.