Vue d'un tableau d'éléments de type T. Plus de détails...
#include <arccore/base/Span.h>
Types publics | |
using | ThatClass = SpanImpl< T, SizeType, Extent, MinValue > |
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 detail::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__ ThatClass & | operator= (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 |
Addresse 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__ ThatClass | subSpan (SizeType abegin, SizeType asize) const |
Sous-vue à partir de l'élément abegin et contenant asize éléments. | |
constexpr __host__ __device__ ThatClass | subPart (SizeType abegin, SizeType asize) const |
Sous-vue à partir de l'élément abegin et contenant asize éléments. | |
constexpr ThatClass | subView (SizeType abegin, SizeType asize) const |
Sous-vue à partir de l'élément abegin et contenant asize éléments. | |
constexpr __host__ __device__ ThatClass | subspan (SizeType abegin, SizeType asize) const |
Pour compatibilité avec le C++20. | |
constexpr ThatClass | subViewInterval (SizeType index, SizeType nb_interval) const |
Sous-vue correspondant à l'interval index sur nb_interval. | |
constexpr ThatClass | subSpanInterval (SizeType index, SizeType nb_interval) const |
Sous-vue correspondant à l'interval index sur nb_interval. | |
constexpr ThatClass | 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 ©_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. | |
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<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'égalité | |
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) |
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).
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::const_iterator = ArrayIterator<const_pointer> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::const_pointer = const ElementType* |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::const_reference = const ElementType& |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::const_value_type = typename std::add_const_t<value_type> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::difference_type = SizeType |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::element_type = ElementType |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::ElementType = T |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::index_type = SizeType |
using Arccore::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> > |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::iterator = ArrayIterator<pointer> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::pointer = ElementType* |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::reference = ElementType& |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::reverse_iterator = std::reverse_iterator<iterator> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::size_type = SizeType |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::ThatClass = SpanImpl<T,SizeType,Extent,MinValue> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::value_type = typename std::remove_cv_t<ElementType> |
using Arccore::SpanImpl< T, SizeType, Extent, MinValue >::view_type = typename detail::ViewTypeT<ElementType>::view_type |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexprprotectednoexcept |
|
inlineconstexprprotectednoexcept |
|
inlineconstexprprotectednoexcept |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
Itérateur sur le premier élément du tableau.
Définition à la ligne 218 du fichier Span.h.
Référencé par Arccore::SpanImpl< T, SizeType, Extent, MinValue >::rend().
|
inlineconstexpr |
Vue constante sur cette vue.
Définition à la ligne 279 du fichier Span.h.
Références Arccore::arccoreCheckArraySize().
|
inline |
|
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 357 du fichier Span.h.
Références Arccore::arccoreCheckAt().
Référencé par Arccore::BasicSerializer::initFromBuffer().
|
inlinestaticconstexprnoexcept |
|
inlineconstexprnoexcept |
Pointeur sur le début de la vue.
Définition à la ligne 419 du fichier Span.h.
Référencé par Arccore::AbstractArray< T >::_addRange(), Arcane::Accelerator::impl::DeviceStorageBase::_copyToAsync(), Arcane::Accelerator::impl::AcceleratorSpecificMemoryCopy< DataType, Extent >::_fill(), Arccore::AbstractArray< T >::_initFromSpan(), Arccore::AbstractArray< T >::_resizeAndCopyView(), Arccore::_sampleSpan(), Arcane::Accelerator::GenericSorter::apply(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericReducer< DataType >::applyMax(), Arcane::Accelerator::GenericReducer< DataType >::applyMin(), Arcane::Accelerator::GenericReducer< DataType >::applySum(), Arccore::asBytes(), Arccore::asSmallSpan(), Arccore::asSpan(), Arccore::asWritableBytes(), Arccore::binaryRead(), Arccore::binaryWrite(), Arcane::IHashAlgorithm::computeHash64(), Arcane::ArrayShape::dimensions(), Arccore::String::endsWith(), Arcane::Accelerator::ItemVariableScalarInViewT< _ItemType, _DataType >::operator[](), Arcane::ItemVariableScalarInViewT< ItemType, DataType >::operator[](), Arcane::Accelerator::ItemVariableScalarInViewT< _ItemType, _DataType >::operator[](), Arcane::ItemVariableScalarInViewT< ItemType, DataType >::operator[](), Arcane::JSONDocument::parse(), Arcane::CaseDatasetSource::setContent(), Arcane::SHA3Algorithm::SHA3::sha3_update(), Arccore::String::startsWith(), Arccore::String::writeBytes(), et Arccore::StringView::writeBytes().
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Itérateur sur le premier élément après la fin du tableau.
Définition à la ligne 222 du fichier Span.h.
Référencé par Arccore::SpanImpl< T, SizeType, Extent, MinValue >::rbegin().
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
Nombre d'éléments du tableau.
Définition à la ligne 213 du fichier Span.h.
Référencé par Arcane::ParameterList::addParameterLine().
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément du tableau.
Définition à la ligne 224 du fichier Span.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::end().
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément après la fin du tableau.
Définition à la ligne 226 du fichier Span.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::begin().
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Retourne la taille du tableau.
Définition à la ligne 209 du fichier Span.h.
Référencé par Arccore::AbstractArray< T >::_addRange(), Arcane::Accelerator::impl::DeviceStorageBase::_copyToAsync(), Arcane::Accelerator::impl::AcceleratorSpecificMemoryCopy< DataType, Extent >::_fill(), Arccore::AbstractArray< T >::_initFromSpan(), Arccore::AbstractArray< T >::_resizeAndCopyView(), Arccore::_sampleSpan(), Arcane::Accelerator::GenericSorter::apply(), Arcane::Accelerator::GenericFilterer::apply(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericReducer< DataType >::applyMax(), Arcane::Accelerator::GenericReducer< DataType >::applyMin(), Arcane::Accelerator::GenericReducer< DataType >::applySum(), Arcane::ValueChecker::areEqualArray(), Arccore::binaryRead(), Arccore::binaryWrite(), Arcane::IHashAlgorithm::computeHash64(), Arccore::String::endsWith(), Arcane::impl::NumArrayContainer< DataType >::fill(), Arcane::impl::NumArrayContainer< DataType >::fill(), Arcane::MeshUtils::generateHashUniqueId(), Arcane::platform::getLoadedSharedLibraryFullPath(), Arccore::String::hashCode(), Arccore::BasicSerializer::initFromBuffer(), Arcane::JSONDocument::parse(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::BasicSerializer::putArray(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arccore::ISerializer::reserveSpan(), Arcane::SerializedData::setConstBytes(), Arcane::CaseDatasetSource::setContent(), Arcane::SerializedData::setWritableBytes(), Arcane::SHA3Algorithm::SHA3::sha3_update(), Arccore::String::startsWith(), Arccore::BasicTranscoder::transcodeFromUtf16ToUtf8(), Arccore::String::writeBytes(), et Arccore::StringView::writeBytes().
|
inlineconstexprnoexcept |
Retourne la taille du tableau en octets.
Définition à la ligne 211 du fichier Span.h.
Référencé par Arccore::asBytes(), et Arccore::asWritableBytes().
|
inlineconstexpr |
Vue constante sur cette vue.
Définition à la ligne 270 du fichier Span.h.
Références Arccore::arccoreCheckArraySize().
Référencé par Arcane::IDeflateService::compress(), Arcane::IHashAlgorithm::computeHash64(), Arcane::IDeflateService::decompress(), Arccore::ISerializer::getSpan(), Arccore::ISerializer::getSpan(), Arccore::ISerializer::getSpan(), Arccore::ISerializer::getSpan(), Arccore::ISerializer::getSpan(), Arcane::NumArray< Arcane::Materials::ComponentItemLocalId, Arcane::ExtentsV >::operator SmallSpan< Arcane::Materials::ComponentItemLocalId >(), et Arcane::ArrayShape::setDimensions().
|
inlineconstexpr |
Sous-vue à partir de l'élément abegin et contenant asize éléments.
Définition à la ligne 304 du fichier Span.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subSpan().
|
inlineconstexpr |
|
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 292 du fichier Span.h.
Référencé par Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subPart(), Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subspan(), et Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subView().
|
inlineconstexpr |
Pour compatibilité avec le C++20.
Définition à la ligne 324 du fichier Span.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subSpan().
|
inlineconstexpr |
|
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 318 du fichier Span.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::subSpan().
|
inlineconstexpr |
|
friend |
|
friend |
|
friend |