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;
77 ARCANE_CHECK_AT(index, NbElement);
78 return m_value[index];
81 ARCCORE_HOST_DEVICE
const T&
operator[](Int32 index)
const
83 ARCANE_CHECK_AT(index, NbElement);
84 return m_value[index];
94 ARCCORE_HOST_DEVICE
const T* data()
const {
return m_value.data(); }
95 ARCCORE_HOST_DEVICE T* data() {
return m_value.data(); }
98 static constexpr Int32
size() {
return NbElement; }
103 iterator
begin() {
return m_value.begin(); }
105 iterator
end() {
return m_value.end(); }
107 const_iterator
begin()
const {
return m_value.begin(); }
109 const_iterator
end()
const {
return m_value.end(); }
113 std::array<T, NbElement> m_value;
Tableau 1D de taille fixe.
__host__ __device__ ArrayView< T > view()
Vue modifiable sur le tableau.
iterator begin()
Itérateur sur le début du tableau.
__host__ __device__ const T & operator[](Int32 index) const
Valeur du i-ème élément.
__host__ __device__ SmallSpan< T, NbElement > span()
Vue modifiable sur le tableau.
const_iterator end() const
Itérateur constant la fin du tableau.
FixedArray()
Créé un tableau en initialisant les éléments avec le constructeur par défaut de T.
static constexpr Int32 size()
Nombre d'éléments tu tableau.
FixedArray(const std::array< T, NbElement > &x)
Créé un tableau en initialisant les éléments de x.
const_iterator begin() const
Itérateur constant sur le début du tableau.
__host__ __device__ T & operator[](Int32 index)
Valeur du i-ème élément.
__host__ __device__ SmallSpan< const T, NbElement > span() const
Vue non modifiable sur le tableau.
iterator end()
Itérateur sur la fin du tableau.
__host__ __device__ ConstArrayView< T > view() const
Vue non modifiable sur le tableau.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-