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.
Structure interne d'une entité de maillage.
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.