Vue d'un tableau d'éléments de type T. Plus de détails...
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< Pointer >, Arcane::Span< std::byte >, 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 std::byte >, 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 >.
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 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__ 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. | |
Fonctions membres privées statiques | |
static constexpr SizeType | _min (SizeType a, SizeType b) |
Attributs privés | |
pointer | m_ptr |
Pointeur sur le tableau. | |
SizeType | 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<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 Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_iterator = ArrayIterator<const_pointer> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_pointer = const ElementType* |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_reference = const ElementType& |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::const_value_type = typename std::add_const_t<value_type> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::difference_type = SizeType |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::element_type = ElementType |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ElementType = T |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::index_type = SizeType |
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>> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::iterator = ArrayIterator<pointer> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::pointer = ElementType* |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::reference = ElementType& |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::reverse_iterator = std::reverse_iterator<iterator> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size_type = SizeType |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::ThatClass = SpanImpl<T,SizeType,Extent,MinValue> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::value_type = typename std::remove_cv_t<ElementType> |
using Arcane::SpanImpl< T, SizeType, Extent, MinValue >::view_type = typename impl::ViewTypeT<ElementType>::view_type |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlinestaticconstexprprivate |
|
inlineconstexprprotectednoexcept |
|
inlineconstexprprotectednoexcept |
|
inlineconstexprprotectednoexcept |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
Itérateur sur le premier élément du tableau.
Définition à la ligne 221 du fichier Span.h.
Référencé par Arcane::SpanImpl< T, Int64, Extent, MinValue >::rend().
|
inlineconstexpr |
|
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
|
inlinestaticconstexprnoexcept |
|
inlineconstexprnoexcept |
Pointeur sur le début de la vue.
Définition à la ligne 422 du fichier Span.h.
Référencé par Arcane::AbstractArray< DataType >::_addRange(), Arcane::Materials::IncrementalComponentModifier::_applyCopyBetweenPartialsAndGlobals(), Arcane::Materials::IncrementalComponentModifier::_applyCopyVariableViews(), Arcane::VariableIOReaderMng::_checkHashFunction(), Arcane::Accelerator::impl::DeviceStorageBase::_copyToAsync(), Arcane::Accelerator::impl::AcceleratorSpecificMemoryCopy< DataType, Extent >::_fill(), Arcane::impl::SpecificMemoryCopy< DataType, Extent >::_fill(), Arcane::AbstractArray< DataType >::_initFromSpan(), Arcane::AbstractArray< DataType >::_resizeAndCopyView(), Arcane::_sampleSpan(), Arcane::Materials::MeshMaterialVariable::_toInt32Indexes(), Arcane::Accelerator::GenericSorter::apply(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericReducer< DataType >::applyMax(), Arcane::Accelerator::GenericReducer< DataType >::applyMin(), Arcane::Accelerator::GenericReducer< DataType >::applySum(), Arcane::asBytes(), Arcane::asWritableBytes(), Arcane::binaryRead(), Arcane::binaryWrite(), Arcane::StringImpl::bytes(), Arcane::Bzip2DataCompressor::compress(), Arcane::LZ4DataCompressor::compress(), Arcane::Array2DataT< DataType >::computeHash(), Arcane::NumArrayDataT< DataType, RankValue >::computeHash(), Arcane::IHashAlgorithm::computeHash64(), Arcane::MultiDataSynchronizeBuffer::copyReceiveAsync(), Arcane::MultiDataSynchronizeBuffer::copySendAsync(), Arcane::Bzip2DataCompressor::decompress(), Arcane::LZ4DataCompressor::decompress(), Arcane::String::endsWith(), Arcane::SingleDataSynchronizeBuffer::finalizeSynchronize(), Arcane::JSONDocument::parse(), Arcane::CaseDatasetSource::setContent(), Arcane::SHA1Algorithm::SHA1::sha1_update(), Arcane::SHA3Algorithm::SHA3::sha3_update(), Arcane::String::startsWith(), et Arcane::String::writeBytes().
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Itérateur sur le premier élément après la fin du tableau.
Définition à la ligne 225 du fichier Span.h.
Référencé par Arcane::SpanImpl< T, Int64, Extent, MinValue >::rbegin().
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
Nombre d'éléments du tableau.
Définition à la ligne 216 du fichier Span.h.
Référencé par Arcane::ParameterList::addParameterLine(), et Arcane::impl::BasicWriter::setMetaData().
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Retourne la taille du tableau.
Définition à la ligne 212 du fichier Span.h.
Référencé par Arcane::Materials::IncrementalComponentModifier::_addItemsToEnvironment(), Arcane::AbstractArray< DataType >::_addRange(), Arcane::Materials::IncrementalComponentModifier::_applyCopyBetweenPartialsAndGlobals(), Arcane::Materials::IncrementalComponentModifier::_applyCopyVariableViews(), Arcane::VariableIOReaderMng::_checkHashFunction(), Arcane::Materials::IncrementalComponentModifier::_computeCellsToTransformForEnvironments(), Arcane::Materials::AllEnvData::_computeInfosForEnvCells(), Arcane::Accelerator::impl::AcceleratorSpecificMemoryCopy< DataType, Extent >::_fill(), Arcane::impl::SpecificMemoryCopy< DataType, Extent >::_fill(), Arcane::AbstractArray< DataType >::_initFromSpan(), Arcane::MshParallelMeshReader::_readAndCheck(), Arcane::Materials::IncrementalComponentModifier::_removeItemsFromEnvironment(), Arcane::AbstractArray< DataType >::_resizeAndCopyView(), Arcane::_sampleSpan(), Arcane::Materials::IncrementalComponentModifier::_switchCellsForEnvironments(), Arcane::Materials::MeshMaterialVariable::_toInt32Indexes(), Arcane::MetisMeshPartitioner::_writeGraph(), Arcane::Accelerator::GenericFilterer::apply(), Arcane::Accelerator::GenericSorter::apply(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericFilterer::applyIf(), Arcane::Accelerator::GenericReducer< DataType >::applyMax(), Arcane::Accelerator::GenericReducer< DataType >::applyMin(), Arcane::Accelerator::GenericReducer< DataType >::applySum(), Arcane::ValueChecker::areEqualArray(), Arcane::binaryRead(), Arcane::binaryWrite(), Arcane::StringImpl::bytes(), Arcane::Bzip2DataCompressor::compress(), Arcane::LZ4DataCompressor::compress(), Arcane::ArrayDataT< DataType >::Impl::compressAndClear(), Arcane::Array2DataT< DataType >::computeHash(), Arcane::NumArrayDataT< DataType, RankValue >::computeHash(), Arcane::IHashAlgorithm::computeHash64(), Arcane::Array2DataT< DataType >::createSerializedDataRef(), Arcane::ArrayDataT< DataType >::createSerializedDataRef(), Arcane::NumArrayDataT< DataType, RankValue >::createSerializedDataRef(), Arcane::StringArrayData::createSerializedDataRef(), Arcane::StringScalarData::createSerializedDataRef(), Arcane::Bzip2DataCompressor::decompress(), Arcane::LZ4DataCompressor::decompress(), Arcane::InternalInfosDumper::dumpArcaneDatabase(), Arcane::String::endsWith(), Arcane::impl::NumArrayContainer< DataType >::fill(), Arcane::impl::NumArrayContainer< DataType >::fill(), Arcane::Materials::ConstituentConnectivityList::fillCellsIsPartial(), Arcane::Materials::ConstituentConnectivityList::fillCellsNbMaterial(), Arcane::Materials::ConstituentConnectivityList::fillCellsToTransform(), Arcane::Materials::ConstituentConnectivityList::fillModifiedConstituents(), Arcane::SingleDataSynchronizeBuffer::finalizeSynchronize(), Arcane::MeshUtils::generateHashUniqueId(), Arcane::platform::getLoadedSharedLibraryFullPath(), Arcane::String::hashCode(), Arcane::BasicSerializer::initFromBuffer(), Arcane::ParameterOptionAddr::ParameterOptionAddr(), Arcane::JSONDocument::parse(), Arcane::Materials::ConstituentConnectivityList::printConstituents(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::BasicSerializer::putArray(), Arcane::PropertyMng::readFrom(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::ISerializer::reserveSpan(), Arcane::Array2DataT< DataType >::serialize(), Arcane::NumArrayDataT< DataType, RankValue >::serialize(), Arcane::CaseDatasetSource::setContent(), Arcane::SHA1Algorithm::SHA1::sha1_update(), Arcane::SHA3Algorithm::SHA3::sha3_update(), Arcane::String::startsWith(), Arcane::BasicTranscoder::transcodeFromUtf16ToUtf8(), Arcane::String::writeBytes(), et Arcane::PropertyMng::writeTo().
|
inlineconstexprnoexcept |
Retourne la taille du tableau en octets.
Définition à la ligne 214 du fichier Span.h.
Référencé par Arcane::asBytes(), et Arcane::asWritableBytes().
|
inlineconstexpr |
Vue constante sur cette vue.
Définition à la ligne 273 du fichier Span.h.
Référencé par Arcane::IDeflateService::compress(), Arcane::IHashAlgorithm::computeHash64(), Arcane::IDeflateService::decompress(), Arcane::ISerializer::getSpan(), Arcane::ISerializer::getSpan(), Arcane::ISerializer::getSpan(), Arcane::ISerializer::getSpan(), Arcane::ISerializer::getSpan(), et Arcane::ArrayShape::setDimensions().
|
inlineconstexpr |
|
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 295 du fichier Span.h.
Référencé par Arcane::SpanImpl< T, Int64, Extent, MinValue >::subPart(), Arcane::SpanImpl< T, Int64, Extent, MinValue >::subspan(), et Arcane::SpanImpl< T, Int64, Extent, MinValue >::subView().
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
friend |
|
friend |
|
friend |
Opérateur d'égalité (valide si T est const mais pas X)
Définition à la ligne 426 du fichier Span.h.
Référencé par Arcane::SpanImpl< T, Int64, Extent, MinValue >::operator!=, et Arcane::SpanImpl< T, Int64, Extent, MinValue >::operator!=.
|
private |
|
private |