12#ifndef ARCANE_UTILS_FIXEDARRAY_H
13#define ARCANE_UTILS_FIXEDARRAY_H
17#include "arcane/utils/ArrayView.h"
43template <
typename T, Int32 NbElement>
46 static_assert(
NbElement >= 0,
"NbElement has to positive");
51 using size_type = Int32;
52 using difference_type = std::ptrdiff_t;
53 using reference = value_type&;
54 using const_reference =
const value_type&;
55 using pointer = value_type*;
56 using const_pointer =
const value_type*;
58 using iterator =
typename std::array<T, NbElement>::iterator;
59 using const_iterator =
typename std::array<T, NbElement>::const_iterator;
69 : m_value(std::
move(x))
74 m_value = std::move(x);
84 return m_value[index];
90 return m_value[index];
101 constexpr ARCCORE_HOST_DEVICE T* data() {
return m_value.data(); }
109 constexpr iterator
begin() {
return m_value.begin(); }
111 constexpr iterator
end() {
return m_value.end(); }
113 constexpr const_iterator
begin()
const {
return m_value.begin(); }
115 constexpr const_iterator
end()
const {
return m_value.end(); }
119 std::array<T, NbElement> m_value;
Tableau 1D de taille fixe.
constexpr __host__ __device__ ArrayView< T > view()
Vue modifiable sur le tableau.
constexpr __host__ __device__ ConstArrayView< T > view() const
Vue non modifiable sur le tableau.
constexpr __host__ __device__ T & operator[](Int32 index)
Valeur du i-ème élément.
constexpr iterator end()
Itérateur sur la fin du tableau.
constexpr iterator begin()
Itérateur sur le début du tableau.
constexpr __host__ __device__ SmallSpan< T, NbElement > span()
Vue modifiable sur le tableau.
constexpr FixedArray()
Créé un tableau en initialisant les éléments avec le constructeur par défaut de T.
constexpr FixedArray< T, NbElement > & operator=(std::array< T, NbElement > x)
Recopie x dans l'instance.
static constexpr Int32 size()
Nombre d'éléments tu tableau.
constexpr __host__ __device__ const T & operator[](Int32 index) const
Valeur du i-ème élément.
constexpr const_iterator end() const
Itérateur constant la fin du tableau.
constexpr const_iterator begin() const
Itérateur constant sur le début du tableau.
constexpr FixedArray(std::array< T, NbElement > x)
Créé un tableau en initialisant les éléments de x.
constexpr __host__ __device__ SmallSpan< const T, NbElement > span() const
Vue non modifiable sur le tableau.
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-