12#ifndef ARCANE_CORE_ITEMLOCALIDLISTVIEW_H
13#define ARCANE_CORE_ITEMLOCALIDLISTVIEW_H
17#include "arcane/core/ItemLocalId.h"
18#include "arcane/core/ItemLocalIdListContainerView.h"
32 class IndexedItemConnectivityAccessor;
52 typedef std::random_access_iterator_tag iterator_category;
62 constexpr ARCCORE_HOST_DEVICE Int32 operator*()
const {
return m_local_id_offset + (*m_local_id_ptr); }
69 constexpr ARCCORE_HOST_DEVICE ThatClass& operator--()
74 constexpr ARCCORE_HOST_DEVICE
void operator+=(
difference_type v) { m_local_id_ptr += v; }
75 constexpr ARCCORE_HOST_DEVICE
void operator-=(
difference_type v) { m_local_id_ptr -= v; }
76 constexpr ARCCORE_HOST_DEVICE
difference_type operator-(
const ThatClass& b)
const
78 return this->m_local_id_ptr - b.m_local_id_ptr;
80 constexpr ARCCORE_HOST_DEVICE
friend ThatClass operator-(
const ThatClass& a,
difference_type v)
82 const Int32* ptr = a.m_local_id_ptr - v;
83 return ThatClass(ptr, a.m_local_id_offset);
85 constexpr ARCCORE_HOST_DEVICE
friend ThatClass operator+(
const ThatClass& a,
difference_type v)
87 const Int32* ptr = a.m_local_id_ptr + v;
88 return ThatClass(ptr, a.m_local_id_offset);
90 constexpr ARCCORE_HOST_DEVICE
friend bool operator<(
const ThatClass& lhs,
const ThatClass& rhs)
92 return lhs.m_local_id_ptr <= rhs.m_local_id_ptr;
97 return lhs.m_local_id_ptr ==
rhs.m_local_id_ptr;
106 const Int32* m_local_id_ptr;
107 Int32 m_local_id_offset = 0;
115template <
typename ItemType>
131 using value_type = LocalIdType;
137 return LocalIdType(m_local_id_offset + (*m_local_id_ptr));
152 return this->m_local_id_ptr -
b.m_local_id_ptr;
156 const Int32*
ptr =
a.m_local_id_ptr - v;
161 const Int32*
ptr =
a.m_local_id_ptr + v;
176 using impl::ItemLocalIdListContainerView::m_size;
177 using impl::ItemLocalIdListContainerView::localId;
207 return !operator==(
lhs,
rhs);
226template <
typename ItemType>
231 friend mesh::IndexedItemConnectivityAccessor;
232 friend ArcaneTest::MeshUnitTest;
258 constexpr ARCCORE_HOST_DEVICE LocalIdType operator[](Int32 i)
const {
return LocalIdType(localId(i)); }
266 return endIterator();
Itérateur pour ItemLocalIdViewT.
Classe de base des itérateurs pour ItemLocalIdViewT.
Int32 value_type
Type indexant le tableau.
Int32 size_type
Type de la taille.
std::ptrdiff_t difference_type
Type d'une distance entre itérateur éléments du tableau.
constexpr __host__ __device__ friend bool operator==(const ThatClass &lhs, const ThatClass &rhs)
Compare les indices d'itération de deux instances.
Vue typée sur une liste d'entités d'une connectivité.
Vue sur une liste de ItemLocalId.
typename ItemTraitsT< ItemType >::LocalIdType LocalIdType
Type du localId()
Index d'un Item dans une variable.
Vue sur un vecteur d'entités.
Classe de base d'un élément de maillage.
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-