12#ifndef ARCANE_ITEMARRAYENUMERATOR_H
13#define ARCANE_ITEMARRAYENUMERATOR_H
17#include "arcane/Item.h"
34class ARCANE_CORE_EXPORT ItemArrayEnumerator
38 typedef ItemPtr* Iterator;
43 m_items_local_id(ids.
data()),
44 m_items_internal(items_internal.
data())
47 ItemArrayEnumerator(
const Int32* ids,
Integer nb_item,
const ItemPtr* items_internal)
50 m_items_local_id(ids),
51 m_items_internal(items_internal)
55 inline void operator++()
57 inline bool hasNext()
const
58 {
return m_current<m_end; }
59 inline Integer itemLocalId()
const
60 {
return m_items_local_id[m_current]; }
63 inline Item operator*()
const
64 {
return Item(m_items_internal,m_items_local_id[m_current]); }
68 const Int32* ARCANE_RESTRICT m_items_local_id;
69 const ItemPtr* m_items_internal;
77template<
typename ItemType>
78class ItemArrayEnumeratorT
79:
public ItemArrayEnumerator
83 : ItemArrayEnumerator(ids,items_internal)
86 ItemArrayEnumeratorT(
const Int32* ids,
Integer nb_item,
const ItemPtr* items_internal)
87 : ItemArrayEnumerator(ids,nb_item,items_internal)
90 inline ItemType operator*()
const
91 {
return ItemType(m_items_internal,m_items_local_id[m_current]); }
constexpr const_pointer data() const noexcept
Pointeur sur la mémoire allouée.
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Classe de base d'un élément de maillage.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
ConstArrayView< ItemInternal * > ItemInternalList
Type de la liste interne des entités.
std::int32_t Int32
Type entier signé sur 32 bits.