12#ifndef ARCANE_CORE_ITEMARRAYENUMERATOR_H
13#define ARCANE_CORE_ITEMARRAYENUMERATOR_H
17#include "arcane/core/Item.h"
30class ARCANE_CORE_EXPORT ItemArrayEnumerator
35 typedef ItemPtr* Iterator;
42 , m_items_local_id(ids.
data())
43 , m_items_internal(items_internal.
data())
46 ItemArrayEnumerator(
const Int32* ids,
Integer nb_item,
const ItemPtr* items_internal)
49 , m_items_local_id(ids)
50 , m_items_internal(items_internal)
56 inline void operator++()
60 inline bool hasNext()
const
62 return m_current < m_end;
64 inline Integer itemLocalId()
const
66 return m_items_local_id[m_current];
72 inline Item operator*()
const
74 return Item(m_items_internal, m_items_local_id[m_current]);
81 const Int32* ARCANE_RESTRICT m_items_local_id;
82 const ItemPtr* m_items_internal;
90template <
typename ItemType>
91class ItemArrayEnumeratorT
92:
public ItemArrayEnumerator
97 : ItemArrayEnumerator(ids, items_internal)
100 ItemArrayEnumeratorT(
const Int32* ids,
Integer nb_item,
const ItemPtr* items_internal)
101 : ItemArrayEnumerator(ids, nb_item, items_internal)
104 inline ItemType operator*()
const
106 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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
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.