Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arccore::SpanImpl< T, SizeType, Extent, MinValue >

Vue d'un tableau d'éléments de type T. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/Span.h>

Dérivée par Arcane::SmallSpan< DataType >, Arcane::SmallSpan< const DataType >, Arcane::SmallSpan< Pointer >, Arcane::SmallSpan< std::byte >, Arcane::SmallSpan< UChar >, Arcane::SmallSpan< Int64 >, Arcane::SmallSpan< Int32 >, Arcane::SmallSpan< Int16 >, Arcane::SmallSpan< Integer >, Arcane::SmallSpan< Real >, Arcane::SmallSpan< bool >, Arcane::SmallSpan< Real2 >, Arcane::SmallSpan< Real3 >, Arcane::SmallSpan< Real2x2 >, Arcane::SmallSpan< Real3x3 >, Arcane::SmallSpan< const Pointer >, Arcane::SmallSpan< const std::byte >, Arcane::SmallSpan< const UChar >, Arcane::SmallSpan< const Int64 >, Arcane::SmallSpan< const Int16 >, Arcane::SmallSpan< const Integer >, Arcane::SmallSpan< const Real >, Arcane::SmallSpan< const bool >, Arcane::SmallSpan< const Real2 >, Arcane::SmallSpan< const Real3 >, Arcane::SmallSpan< const Real2x2 >, Arcane::SmallSpan< const Real3x3 >, Arcane::Span< DataType >, Arcane::Span< const std::byte >, Arcane::Span< std::byte >, Arcane::Span< Pointer >, Arcane::Span< UChar >, Arcane::Span< Int64 >, Arcane::Span< Int32 >, Arcane::Span< Int16 >, Arcane::Span< Integer >, Arcane::Span< Real >, Arcane::Span< bool >, Arcane::Span< Real2 >, Arcane::Span< Real3 >, Arcane::Span< Real2x2 >, Arcane::Span< Real3x3 >, Arcane::Span< const Pointer >, Arcane::Span< const UChar >, Arcane::Span< const Int64 >, Arcane::Span< const Int32 >, Arcane::Span< const Int16 >, Arcane::Span< const Integer >, Arcane::Span< const Real >, Arcane::Span< const bool >, Arcane::Span< const Real2 >, Arcane::Span< const Real3 >, Arcane::Span< const Real2x2 >, et Arcane::Span< const Real3x3 >.

+ Graphe de collaboration de Arccore::SpanImpl< T, SizeType, Extent, MinValue >:

Types publics

using ThatClass = SpanImpl<T, SizeType, Extent, MinValue>
 
using SubSpanType = SpanImpl<T, SizeType, DynExtent, 0>
 
using size_type = SizeType
 
using ElementType = T
 
using element_type = ElementType
 
using value_type = typename std::remove_cv_t<ElementType>
 
using const_value_type = typename std::add_const_t<value_type>
 
using index_type = SizeType
 
using difference_type = SizeType
 
using pointer = ElementType*
 
using const_pointer = const ElementType*
 
using reference = ElementType&
 
using const_reference = const ElementType&
 
using iterator = ArrayIterator<pointer>
 
using const_iterator = ArrayIterator<const_pointer>
 
using view_type = typename Impl::ViewTypeT<ElementType>::view_type
 
using reverse_iterator = std::reverse_iterator<iterator>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 
template<typename X>
using is_same_const_type = std::enable_if_t<std::is_same_v<X, T> || std::is_same_v<std::add_const_t<X>, T>>
 Indique si on peut convertir un 'X' ou 'const X' en un 'T'.
 

Fonctions membres publiques

constexpr __host__ __device__ SpanImpl () noexcept
 Construit une vue vide.
 
template<typename X, SizeType XExtent, SizeType XMinValue, typename = std::enable_if_t<std::is_same_v<const X, T>>>
constexpr __host__ __device__ SpanImpl (const SpanImpl< X, SizeType, XExtent, XMinValue > &from) noexcept
 Constructeur de recopie depuis une autre vue.
 
template<SizeType XExtent, SizeType XMinValue>
constexpr __host__ __device__ SpanImpl (const SpanImpl< T, SizeType, XExtent, XMinValue > &from) noexcept
 
constexpr __host__ __device__ SpanImpl (pointer ptr, SizeType asize) noexcept
 Construit une vue sur une zone mémoire commencant par ptr et contenant asize éléments.
 
template<std::size_t N, typename X, typename = is_same_const_type<X>>
constexpr __host__ __device__ SpanImpl (std::array< X, N > &from)
 Construit une vue depuis un std::array.
 
template<std::size_t N, typename X, typename = is_same_const_type<X>>
constexpr __host__ __device__ ThatClassoperator= (std::array< X, N > &from)
 Opérateur de recopie.
 
constexpr __host__ __device__ reference operator[] (SizeType i) const
 i-ème élément du tableau.
 
constexpr __host__ __device__ reference operator() (SizeType i) const
 i-ème élément du tableau.
 
constexpr __host__ __device__ reference item (SizeType i) const
 i-ème élément du tableau.
 
constexpr __host__ __device__ void setItem (SizeType i, const_reference v) noexcept
 Positionne le i-ème élément du tableau.
 
constexpr __host__ __device__ SizeType size () const noexcept
 Retourne la taille du tableau.
 
constexpr __host__ __device__ SizeType sizeBytes () const noexcept
 Retourne la taille du tableau en octets.
 
constexpr __host__ __device__ SizeType length () const noexcept
 Nombre d'éléments du tableau.
 
constexpr __host__ __device__ iterator begin () const noexcept
 Itérateur sur le premier élément du tableau.
 
constexpr __host__ __device__ iterator end () const noexcept
 Itérateur sur le premier élément après la fin du tableau.
 
constexpr __host__ __device__ reverse_iterator rbegin () const noexcept
 Itérateur inverse sur le premier élément du tableau.
 
constexpr __host__ __device__ reverse_iterator rend () const noexcept
 Itérateur inverse sur le premier élément après la fin du tableau.
 
ArrayRange< pointer > range () const
 Intervalle d'itération du premier au dernièr élément.
 
constexpr __host__ __device__ pointer ptrAt (SizeType index) const
 Adresse du index-ème élément.
 
constexpr __host__ __device__ reference at (SizeType i) const
 
constexpr __host__ __device__ void setAt (SizeType i, const_reference value)
 
__host__ __device__ void fill (T o)
 Remplit le tableau avec la valeur o.
 
constexpr view_type smallView ()
 Vue constante sur cette vue.
 
constexpr ConstArrayView< value_type > constSmallView () const
 Vue constante sur cette vue.
 
constexpr __host__ __device__ SubSpanType subSpan (SizeType abegin, SizeType asize) const
 Sous-vue à partir de l'élément abegin et contenant asize éléments.
 
constexpr __host__ __device__ SubSpanType subPart (SizeType abegin, SizeType asize) const
 Sous-vue à partir de l'élément abegin et contenant asize éléments.
 
constexpr SubSpanType subView (SizeType abegin, SizeType asize) const
 Sous-vue à partir de l'élément abegin et contenant asize éléments.
 
constexpr __host__ __device__ SubSpanType subspan (SizeType abegin, SizeType asize) const
 Pour compatibilité avec le C++20.
 
constexpr SubSpanType subViewInterval (SizeType index, SizeType nb_interval) const
 Sous-vue correspondant à l'interval index sur nb_interval.
 
constexpr SubSpanType subSpanInterval (SizeType index, SizeType nb_interval) const
 Sous-vue correspondant à l'interval index sur nb_interval.
 
constexpr SubSpanType subPartInterval (SizeType index, SizeType nb_interval) const
 Sous-vue correspondant à l'interval index sur nb_interval.
 
template<class U>
__host__ __device__ void copy (const U &copy_array)
 Recopie le tableau copy_array dans l'instance.
 
constexpr __host__ __device__ bool empty () const noexcept
 Retourne true si le tableau est vide (dimension nulle)
 
__host__ __device__ bool contains (const_reference v) const
 true si le tableau contient l'élément de valeur v
 
std::optional< SizeType > findFirst (const_reference v) const
 
constexpr __host__ __device__ void setArray (const ArrayView< T > &v) noexcept
 
constexpr __host__ __device__ void setArray (const Span< T > &v) noexcept
 
constexpr __host__ __device__ pointer data () const noexcept
 Pointeur sur le début de la vue.
 

Fonctions membres publiques statiques

static constexpr ThatClass create (pointer ptr, SizeType asize) noexcept
 Construit une vue sur une zone mémoire commencant par ptr et.
 

Fonctions membres protégées

constexpr void _setArray (pointer v, SizeType s) noexcept
 Modifie le pointeur et la taille du tableau.
 
constexpr void _setPtr (pointer v) noexcept
 Modifie le pointeur du début du tableau.
 
constexpr void _setSize (SizeType s) noexcept
 Modifie la taille du tableau.
 

Types privés

using ExtentStorageType = Impl::ExtentStorage<SizeType, Extent>
 

Fonctions membres privées statiques

static constexpr SizeType _min (SizeType a, SizeType b)
 

Attributs privés

pointer m_ptr
 
ExtentStorageType m_size
 Nombre d'éléments du tableau.
 

Amis

template<typename X, SizeType Extent2, SizeType MinValue2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator== (const SpanImpl< T, SizeType, Extent, MinValue > &rhs, const SpanImpl< X, SizeType, Extent2, MinValue2 > &lhs)
 Opérateur d'égalité (valide si T est const mais pas X)
 
template<SizeType Extent2, SizeType MinValue2>
bool operator== (const SpanImpl< T, SizeType, Extent, MinValue > &rhs, const SpanImpl< T, SizeType, Extent2, MinValue2 > &lhs)
 Opérateur d'égalité
 
template<typename X, SizeType Extent2, SizeType MinValue2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator!= (const SpanImpl< T, SizeType, Extent, MinValue > &rhs, const SpanImpl< X, SizeType, Extent2, MinValue2 > &lhs)
 Opérateur d'inégalité (valide si T est const mais pas X)
 
template<SizeType Extent2, SizeType MinValue2>
bool operator!= (const SpanImpl< T, SizeType, Extent, MinValue > &rhs, const SpanImpl< T, SizeType, Extent2, MinValue2 > &lhs)
 Opérateur d'inégalité
 
std::ostream & operator<< (std::ostream &o, const ThatClass &val)
 

Description détaillée

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
class Arccore::SpanImpl< T, SizeType, Extent, MinValue >

Vue d'un tableau d'éléments de type T.

Cette classe ne doit pas être utilisée directement. Il faut utiliser Span ou SmallSpan à la place.

La vue est non modifiable si l'argument template est de type 'const T'. Cette classe permet d'accéder et d'utiliser un tableau d'éléments du type T de la même manière qu'un tableau C standard. SizeType est le type utilisé pour conserver le nombre d'éléments du tableau. Cela peut être 'Int32' ou 'Int64'.

Si Extent est différent de DynExtent (le défaut), la taille est variable, sinon elle est fixe et a pour valeur Extent. MinValue est la valeur minimale possible (0 par défaut).

Définition à la ligne 176 du fichier Span.h.

Documentation des définitions de type membres

◆ const_iterator

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_iterator = ArrayIterator<const_pointer>

Définition à la ligne 196 du fichier Span.h.

◆ const_pointer

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_pointer = const ElementType*

Définition à la ligne 192 du fichier Span.h.

◆ const_reference

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_reference = const ElementType&

Définition à la ligne 194 du fichier Span.h.

◆ const_reverse_iterator

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Définition à la ligne 199 du fichier Span.h.

◆ const_value_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_value_type = typename std::add_const_t<value_type>

Définition à la ligne 188 du fichier Span.h.

◆ difference_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::difference_type = SizeType

Définition à la ligne 190 du fichier Span.h.

◆ element_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::element_type = ElementType

Définition à la ligne 186 du fichier Span.h.

◆ ElementType

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ElementType = T

Définition à la ligne 185 du fichier Span.h.

◆ ExtentStorageType

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ExtentStorageType = Impl::ExtentStorage<SizeType, Extent>
private

Définition à la ligne 178 du fichier Span.h.

◆ index_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::index_type = SizeType

Définition à la ligne 189 du fichier Span.h.

◆ is_same_const_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<typename X>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::is_same_const_type = std::enable_if_t<std::is_same_v<X, T> || std::is_same_v<std::add_const_t<X>, T>>

Indique si on peut convertir un 'X' ou 'const X' en un 'T'.

Définition à la ligne 203 du fichier Span.h.

◆ iterator

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::iterator = ArrayIterator<pointer>

Définition à la ligne 195 du fichier Span.h.

◆ pointer

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::pointer = ElementType*

Définition à la ligne 191 du fichier Span.h.

◆ reference

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::reference = ElementType&

Définition à la ligne 193 du fichier Span.h.

◆ reverse_iterator

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::reverse_iterator = std::reverse_iterator<iterator>

Définition à la ligne 198 du fichier Span.h.

◆ size_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size_type = SizeType

Définition à la ligne 184 du fichier Span.h.

◆ SubSpanType

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SubSpanType = SpanImpl<T, SizeType, DynExtent, 0>

Définition à la ligne 183 du fichier Span.h.

◆ ThatClass

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ThatClass = SpanImpl<T, SizeType, Extent, MinValue>

Définition à la ligne 182 du fichier Span.h.

◆ value_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::value_type = typename std::remove_cv_t<ElementType>

Définition à la ligne 187 du fichier Span.h.

◆ view_type

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::view_type = typename Impl::ViewTypeT<ElementType>::view_type

Définition à la ligne 197 du fichier Span.h.

Documentation des constructeurs et destructeur

◆ SpanImpl() [1/5]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SpanImpl ( )
inlineconstexprnoexcept

Construit une vue vide.

Définition à la ligne 208 du fichier Span.h.

◆ SpanImpl() [2/5]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<typename X, SizeType XExtent, SizeType XMinValue, typename = std::enable_if_t<std::is_same_v<const X, T>>>
__host__ __device__ Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SpanImpl ( const SpanImpl< X, SizeType, XExtent, XMinValue > & from)
inlineconstexprnoexcept

Constructeur de recopie depuis une autre vue.

Définition à la ligne 216 du fichier Span.h.

◆ SpanImpl() [3/5]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<SizeType XExtent, SizeType XMinValue>
__host__ __device__ Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SpanImpl ( const SpanImpl< T, SizeType, XExtent, XMinValue > & from)
inlineconstexprnoexcept

Définition à la ligne 222 du fichier Span.h.

◆ SpanImpl() [4/5]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SpanImpl ( pointer ptr,
SizeType asize )
inlineconstexprnoexcept

Construit une vue sur une zone mémoire commencant par ptr et contenant asize éléments.

Définition à la ligne 228 du fichier Span.h.

◆ SpanImpl() [5/5]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<std::size_t N, typename X, typename = is_same_const_type<X>>
__host__ __device__ Arcane::SpanImpl< T, SizeType, Extent, MinValue >::SpanImpl ( std::array< X, N > & from)
inlineconstexpr

Construit une vue depuis un std::array.

Définition à la ligne 235 du fichier Span.h.

Documentation des fonctions membres

◆ _min()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
static constexpr SizeType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::_min ( SizeType a,
SizeType b )
inlinestaticconstexprprivate

Définition à la ligne 591 du fichier Span.h.

◆ _setArray()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::_setArray ( pointer v,
SizeType s )
inlineconstexprprotectednoexcept

Modifie le pointeur et la taille du tableau.

C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.

Définition à la ligne 561 du fichier Span.h.

◆ _setPtr()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::_setPtr ( pointer v)
inlineconstexprprotectednoexcept

Modifie le pointeur du début du tableau.

C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.

Définition à la ligne 573 du fichier Span.h.

◆ _setSize()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::_setSize ( SizeType s)
inlineconstexprprotectednoexcept

Modifie la taille du tableau.

C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.

Définition à la ligne 581 du fichier Span.h.

◆ at()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reference Arcane::SpanImpl< T, SizeType, Extent, MinValue >::at ( SizeType i) const
inlineconstexpr

Définition à la ligne 347 du fichier Span.h.

◆ begin()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ iterator Arcane::SpanImpl< T, SizeType, Extent, MinValue >::begin ( ) const
inlineconstexprnoexcept

Itérateur sur le premier élément du tableau.

Définition à la ligne 318 du fichier Span.h.

◆ constSmallView()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
ConstArrayView< value_type > Arcane::SpanImpl< T, SizeType, Extent, MinValue >::constSmallView ( ) const
inlineconstexpr

Vue constante sur cette vue.

Définition à la ligne 379 du fichier Span.h.

Référencé par Arcane::NumArray< Arcane::Materials::ConstituentItemLocalId, Arcane::ExtentsV< Int32, DynExtent > >::operator SmallSpan< const Arcane::Materials::ConstituentItemLocalId >().

+ Voici le graphe des appelants de cette fonction :

◆ contains()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ bool Arcane::SpanImpl< T, SizeType, Extent, MinValue >::contains ( const_reference v) const
inline

true si le tableau contient l'élément de valeur v

Définition à la ligne 472 du fichier Span.h.

◆ copy()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<class U>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::copy ( const U & copy_array)
inline

Recopie le tableau copy_array dans l'instance.

Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés

Définition à la ligne 455 du fichier Span.h.

◆ create()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
static constexpr ThatClass Arcane::SpanImpl< T, SizeType, Extent, MinValue >::create ( pointer ptr,
SizeType asize )
inlinestaticconstexprnoexcept

Construit une vue sur une zone mémoire commencant par ptr et.

Définition à la ligne 253 du fichier Span.h.

◆ data()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ pointer Arcane::SpanImpl< T, SizeType, Extent, MinValue >::data ( ) const
inlineconstexprnoexcept

Pointeur sur le début de la vue.

Avertissement
Les accès via le pointeur retourné ne pourront pas être pas vérifiés par Arcane à la différence des accès via operator[](): aucune vérification de dépassement n'est possible, même en mode vérification.

Définition à la ligne 517 du fichier Span.h.

Référencé par Arcane::impl::BasicGenericWriter::writeData().

+ Voici le graphe des appelants de cette fonction :

◆ empty()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ bool Arcane::SpanImpl< T, SizeType, Extent, MinValue >::empty ( ) const
inlineconstexprnoexcept

Retourne true si le tableau est vide (dimension nulle)

Définition à la ligne 470 du fichier Span.h.

Référencé par Arcane::Materials::IncrementalComponentModifier::_copyBetweenPartialsAndGlobals().

+ Voici le graphe des appelants de cette fonction :

◆ end()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ iterator Arcane::SpanImpl< T, SizeType, Extent, MinValue >::end ( ) const
inlineconstexprnoexcept

Itérateur sur le premier élément après la fin du tableau.

Définition à la ligne 322 du fichier Span.h.

◆ fill()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::fill ( T o)
inline

Remplit le tableau avec la valeur o.

Définition à la ligne 361 du fichier Span.h.

◆ findFirst()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
std::optional< SizeType > Arcane::SpanImpl< T, SizeType, Extent, MinValue >::findFirst ( const_reference v) const
inline

/brief Position du premier élément de valeur v

/param v La valeur à trouver. /return La position du premier élément de valeur v si présent, std::nullopt sinon.

Définition à la ligne 487 du fichier Span.h.

◆ item()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reference Arcane::SpanImpl< T, SizeType, Extent, MinValue >::item ( SizeType i) const
inlineconstexpr

i-ème élément du tableau.

En mode check, vérifie les débordements.

Définition à la ligne 287 du fichier Span.h.

◆ length()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SizeType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::length ( ) const
inlineconstexprnoexcept

Nombre d'éléments du tableau.

Définition à la ligne 313 du fichier Span.h.

◆ operator()()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reference Arcane::SpanImpl< T, SizeType, Extent, MinValue >::operator() ( SizeType i) const
inlineconstexpr

i-ème élément du tableau.

En mode check, vérifie les débordements.

Définition à la ligne 276 du fichier Span.h.

◆ operator=()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<std::size_t N, typename X, typename = is_same_const_type<X>>
__host__ __device__ ThatClass & Arcane::SpanImpl< T, SizeType, Extent, MinValue >::operator= ( std::array< X, N > & from)
inlineconstexpr

Opérateur de recopie.

Définition à la ligne 242 du fichier Span.h.

◆ operator[]()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reference Arcane::SpanImpl< T, SizeType, Extent, MinValue >::operator[] ( SizeType i) const
inlineconstexpr

i-ème élément du tableau.

En mode check, vérifie les débordements.

Définition à la ligne 265 du fichier Span.h.

◆ ptrAt()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ pointer Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ptrAt ( SizeType index) const
inlineconstexpr

Adresse du index-ème élément.

Définition à la ligne 340 du fichier Span.h.

◆ range()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
ArrayRange< pointer > Arcane::SpanImpl< T, SizeType, Extent, MinValue >::range ( ) const
inline

Intervalle d'itération du premier au dernièr élément.

Définition à la ligne 332 du fichier Span.h.

◆ rbegin()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reverse_iterator Arcane::SpanImpl< T, SizeType, Extent, MinValue >::rbegin ( ) const
inlineconstexprnoexcept

Itérateur inverse sur le premier élément du tableau.

Définition à la ligne 324 du fichier Span.h.

◆ rend()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ reverse_iterator Arcane::SpanImpl< T, SizeType, Extent, MinValue >::rend ( ) const
inlineconstexprnoexcept

Itérateur inverse sur le premier élément après la fin du tableau.

Définition à la ligne 326 du fichier Span.h.

◆ setArray() [1/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::setArray ( const ArrayView< T > & v)
inlineconstexprnoexcept

Définition à la ligne 498 du fichier Span.h.

◆ setArray() [2/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::setArray ( const Span< T > & v)
inlineconstexprnoexcept

Définition à la ligne 503 du fichier Span.h.

◆ setAt()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::setAt ( SizeType i,
const_reference value )
inlineconstexpr

Définition à la ligne 354 du fichier Span.h.

◆ setItem()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ void Arcane::SpanImpl< T, SizeType, Extent, MinValue >::setItem ( SizeType i,
const_reference v )
inlineconstexprnoexcept

Positionne le i-ème élément du tableau.

En mode check, vérifie les débordements.

Définition à la ligne 298 du fichier Span.h.

◆ size()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SizeType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size ( ) const
inlineconstexprnoexcept

Retourne la taille du tableau.

Définition à la ligne 305 du fichier Span.h.

Référencé par Arcane::impl::BasicGenericWriter::writeData().

+ Voici le graphe des appelants de cette fonction :

◆ sizeBytes()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SizeType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::sizeBytes ( ) const
inlineconstexprnoexcept

Retourne la taille du tableau en octets.

Définition à la ligne 307 du fichier Span.h.

◆ smallView()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
view_type Arcane::SpanImpl< T, SizeType, Extent, MinValue >::smallView ( )
inlineconstexpr

Vue constante sur cette vue.

Définition à la ligne 370 du fichier Span.h.

Référencé par Arcane::NumArray< Arcane::Materials::ConstituentItemLocalId, Arcane::ExtentsV< Int32, DynExtent > >::operator SmallSpan< Arcane::Materials::ConstituentItemLocalId >().

+ Voici le graphe des appelants de cette fonction :

◆ subPart()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subPart ( SizeType abegin,
SizeType asize ) const
inlineconstexpr

Sous-vue à partir de l'élément abegin et contenant asize éléments.

Voir également
subSpan()

Définition à la ligne 404 du fichier Span.h.

◆ subPartInterval()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subPartInterval ( SizeType index,
SizeType nb_interval ) const
inlineconstexpr

Sous-vue correspondant à l'interval index sur nb_interval.

Définition à la ligne 442 du fichier Span.h.

◆ subSpan()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subSpan ( SizeType abegin,
SizeType asize ) const
inlineconstexpr

Sous-vue à partir de l'élément abegin et contenant asize éléments.

Si (abegin+asize est supérieur à la taille du tableau, la vue est tronquée à cette taille, retournant éventuellement une vue vide.

Définition à la ligne 392 du fichier Span.h.

◆ subspan()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
__host__ __device__ SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subspan ( SizeType abegin,
SizeType asize ) const
inlineconstexpr

Pour compatibilité avec le C++20.

Définition à la ligne 423 du fichier Span.h.

◆ subSpanInterval()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subSpanInterval ( SizeType index,
SizeType nb_interval ) const
inlineconstexpr

Sous-vue correspondant à l'interval index sur nb_interval.

Définition à la ligne 436 du fichier Span.h.

◆ subView()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subView ( SizeType abegin,
SizeType asize ) const
inlineconstexpr

Sous-vue à partir de l'élément abegin et contenant asize éléments.

Si (abegin+asize) est supérieur à la taille du tableau, la vue est tronquée à cette taille, retournant éventuellement une vue vide.

Définition à la ligne 417 du fichier Span.h.

◆ subViewInterval()

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
SubSpanType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::subViewInterval ( SizeType index,
SizeType nb_interval ) const
inlineconstexpr

Sous-vue correspondant à l'interval index sur nb_interval.

Définition à la ligne 430 du fichier Span.h.

Documentation des fonctions amies et associées

◆ operator!= [1/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<SizeType Extent2, SizeType MinValue2>
bool operator!= ( const SpanImpl< T, SizeType, Extent, MinValue > & rhs,
const SpanImpl< T, SizeType, Extent2, MinValue2 > & lhs )
friend

Opérateur d'inégalité

Définition à la ligne 542 du fichier Span.h.

◆ operator!= [2/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<typename X, SizeType Extent2, SizeType MinValue2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator!= ( const SpanImpl< T, SizeType, Extent, MinValue > & rhs,
const SpanImpl< X, SizeType, Extent2, MinValue2 > & lhs )
friend

Opérateur d'inégalité (valide si T est const mais pas X)

Définition à la ligne 528 du fichier Span.h.

◆ operator<<

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
std::ostream & operator<< ( std::ostream & o,
const ThatClass & val )
friend

Définition à la ligne 547 du fichier Span.h.

◆ operator== [1/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<SizeType Extent2, SizeType MinValue2>
bool operator== ( const SpanImpl< T, SizeType, Extent, MinValue > & rhs,
const SpanImpl< T, SizeType, Extent2, MinValue2 > & lhs )
friend

Opérateur d'égalité

Définition à la ligne 535 du fichier Span.h.

◆ operator== [2/2]

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
template<typename X, SizeType Extent2, SizeType MinValue2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator== ( const SpanImpl< T, SizeType, Extent, MinValue > & rhs,
const SpanImpl< X, SizeType, Extent2, MinValue2 > & lhs )
friend

Opérateur d'égalité (valide si T est const mais pas X)

Définition à la ligne 521 du fichier Span.h.

Documentation des données membres

◆ m_ptr

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
pointer Arcane::SpanImpl< T, SizeType, Extent, MinValue >::m_ptr
private

Pointeur sur le tableau

Définition à la ligne 585 du fichier Span.h.

◆ m_size

template<typename T, typename SizeType, SizeType Extent, SizeType MinValue>
ExtentStorageType Arcane::SpanImpl< T, SizeType, Extent, MinValue >::m_size
private

Nombre d'éléments du tableau.

Définition à la ligne 587 du fichier Span.h.


La documentation de cette classe a été générée à partir des fichiers suivants :