Template Numerical Library version\ main:0c33d623
|
Array with constant size. More...
#include <TNL/Containers/StaticArray.h>
Public Types | |
using | IndexType = int |
Type being used for the array elements indexing. | |
using | ValueType = Value |
Type of elements stored in this array. | |
Public Member Functions | |
__cuda_callable__ constexpr | StaticArray ()=default |
Default constructor. | |
__cuda_callable__ constexpr | StaticArray (const StaticArray &v) |
Copy constructor. | |
template<typename OtherValue > | |
__cuda_callable__ constexpr | StaticArray (const StaticArray< Size, OtherValue > &v) |
Templated copy constructor. | |
template<typename OtherValue > | |
constexpr | StaticArray (const StaticArray< Size, OtherValue > &v) |
template<typename OtherValue > | |
__cuda_callable__ constexpr | StaticArray (const std::array< OtherValue, Size > &array) |
Constructor which initializes the array by copying elements from std::array. | |
template<typename OtherValue > | |
__cuda_callable__ constexpr | StaticArray (const std::initializer_list< OtherValue > &elems) |
Constructor which initializes the array by copying elements from std::initializer_list, e.g. {...} . | |
__cuda_callable__ constexpr | StaticArray (const Value &v) |
Constructor that sets all array components to value v. | |
template<typename _unused = void> | |
__cuda_callable__ constexpr | StaticArray (const Value v[Size]) |
Constructor from static array. | |
template<typename _unused > | |
constexpr | StaticArray (const Value v[Size]) |
constexpr | StaticArray (StaticArray &&) noexcept=default |
Move constructor. | |
__cuda_callable__ constexpr | StaticArray (std::array< Value, Size > &&array) |
Constructor which initializes the array by moving elements from std::array. | |
template<typename... Values, std::enable_if_t<(Size > 1) &&sizeof...(Values)==Size, bool > = true> | |
__cuda_callable__ constexpr | StaticArray (Values &&... values) |
Constructor which initializes the array element-by-element using the supplied values. | |
constexpr const Value * | getData () const noexcept |
Gets constant pointer to data of this static array. | |
constexpr Value * | getData () noexcept |
Gets pointer to data of this static array. | |
void | load (File &file) |
Loads data from the file to this static array. | |
template<typename Array > | |
constexpr bool | operator!= (const Array &array) const |
This function checks whether this static array is not equal to another array. | |
constexpr const Value & | operator() (int i) const noexcept |
Accesses specified element at the position i and returns a constant reference to its value. | |
constexpr Value & | operator() (int i) noexcept |
Accesses specified element at the position i and returns a reference to its value. | |
constexpr StaticArray & | operator= (const StaticArray &v) |
Copy-assignment operator. | |
template<typename T > | |
constexpr StaticArray< Size, Value > & | operator= (const T &v) |
Assigns an object v of type T. | |
constexpr StaticArray & | operator= (StaticArray &&) noexcept=default |
Move-assignment operator. | |
template<typename Array > | |
constexpr bool | operator== (const Array &array) const |
This function checks whether this static array is equal to another array. | |
constexpr const Value & | operator[] (int i) const noexcept |
Accesses specified element at the position i and returns a constant reference to its value. | |
constexpr Value & | operator[] (int i) noexcept |
Accesses specified element at the position i and returns a reference to its value. | |
void | save (File &file) const |
Saves this static array into the file. | |
constexpr void | setValue (const ValueType &val) |
Sets all values of this static array to val. | |
constexpr void | sort () |
Sorts the elements in this static array in ascending order. | |
std::ostream & | write (std::ostream &str, const char *separator=" ") const |
Writes the array values into stream str with specified separator. | |
constexpr const Value & | x () const noexcept |
Returns constant reference to the first coordinate. | |
constexpr Value & | x () noexcept |
Returns reference to the first coordinate. | |
constexpr const Value & | y () const noexcept |
Returns constant reference to the second coordinate for arrays with Size >= 2. | |
constexpr Value & | y () noexcept |
Returns reference to the second coordinate for arrays with Size >= 2. | |
constexpr const Value & | z () const noexcept |
Returns constant reference to the third coordinate for arrays with Size >= 3. | |
constexpr Value & | z () noexcept |
Returns reference to the third coordinate for arrays with Size >= 3. | |
Static Public Member Functions | |
static constexpr int | getSize () |
Gets size of this array. | |
Protected Attributes | |
std::array< Value, Size > | data |
Array with constant size.
Size | Size of static array. Number of its elements. |
Value | Type of the values in static array. |
|
constexpr |
Constructor from static array.
v | Input array. |
|
constexpr |
Constructor that sets all array components to value v.
v | Reference to a value. |
|
constexpr |
Copy constructor.
Constructs a copy of another static array v.
|
constexpr |
Templated copy constructor.
Constructs a copy of another static array v where the value type is ValueType. This constructor allows casting between StaticArray
types with the same size, but different value types.
|
constexpr |
Constructor which initializes the array element-by-element using the supplied values.
It behaves like the aggregate-initialization in std::array, e.g. StaticArray< 3, int > a = {1, 2, 3};
. The number of supplied arguments must be equal to Size.
values | The elements forwarded to the constructor of the underlying std::array. |
|
constexpr |
Constructor which initializes the array by copying elements from std::initializer_list, e.g. {...}
.
The initializer list size must larger or equal to Size.
elems | input initializer list |
|
constexpr |
Constructor which initializes the array by copying elements from std::array.
array | input array |
|
constexpr |
Constructor which initializes the array by moving elements from std::array.
array | input array |
void TNL::Containers::StaticArray< Size, Value >::load | ( | File & | file | ) |
Loads data from the file to this static array.
file | Reference to a file. |
|
constexpr |
This function checks whether this static array is not equal to another array.
Return true if the arrays are not equal in size. Otherwise returns false.
|
constexprnoexcept |
Accesses specified element at the position i and returns a constant reference to its value.
Equivalent to operator[].
|
constexprnoexcept |
Accesses specified element at the position i and returns a reference to its value.
Equivalent to operator[].
|
constexpr |
Assigns an object v of type T.
T can be:
|
constexpr |
This function checks whether this static array is equal to another array.
Return true if the arrays are equal in size. Otherwise returns false.
|
constexprnoexcept |
Accesses specified element at the position i and returns a constant reference to its value.
i | Index position of an element. |
|
constexprnoexcept |
Accesses specified element at the position i and returns a reference to its value.
i | Index position of an element. |
void TNL::Containers::StaticArray< Size, Value >::save | ( | File & | file | ) | const |
Saves this static array into the file.
file | Reference to a file. |
std::ostream & TNL::Containers::StaticArray< Size, Value >::write | ( | std::ostream & | str, |
const char * | separator = " " |
||
) | const |
Writes the array values into stream str with specified separator.
str | Reference to a stream. |
separator | Character separating the array values in the stream str. Is set to " " by default. |