41class ItemLocalIdListViewConstIterator
45 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListViewConstIterator(
const Int32* local_id_ptr,
Int32 local_id_offset)
46 : m_local_id_ptr(local_id_ptr)
47 , m_local_id_offset(local_id_offset)
52 typedef ItemLocalIdListViewConstIterator ThatClass;
53 typedef std::random_access_iterator_tag iterator_category;
63 constexpr ARCCORE_HOST_DEVICE
Int32 operator*()
const {
return m_local_id_offset + (*m_local_id_ptr); }
65 constexpr ARCCORE_HOST_DEVICE ThatClass& operator++()
70 constexpr ARCCORE_HOST_DEVICE ThatClass& operator--()
75 constexpr ARCCORE_HOST_DEVICE
void operator+=(
difference_type v) { m_local_id_ptr += v; }
76 constexpr ARCCORE_HOST_DEVICE
void operator-=(
difference_type v) { m_local_id_ptr -= v; }
77 constexpr ARCCORE_HOST_DEVICE
difference_type operator-(
const ThatClass& b)
const
79 return this->m_local_id_ptr - b.m_local_id_ptr;
81 constexpr ARCCORE_HOST_DEVICE
friend ThatClass operator-(
const ThatClass& a,
difference_type v)
83 const Int32* ptr = a.m_local_id_ptr - v;
84 return ThatClass(ptr, a.m_local_id_offset);
86 constexpr ARCCORE_HOST_DEVICE
friend ThatClass operator+(
const ThatClass& a,
difference_type v)
88 const Int32* ptr = a.m_local_id_ptr + v;
89 return ThatClass(ptr, a.m_local_id_offset);
91 constexpr ARCCORE_HOST_DEVICE
friend bool operator<(
const ThatClass& lhs,
const ThatClass& rhs)
93 return lhs.m_local_id_ptr <= rhs.m_local_id_ptr;
96 constexpr ARCCORE_HOST_DEVICE
friend bool operator==(
const ThatClass& lhs,
const ThatClass& rhs)
98 return lhs.m_local_id_ptr == rhs.m_local_id_ptr;
100 constexpr ARCCORE_HOST_DEVICE
friend bool operator!=(
const ThatClass& lhs,
const ThatClass& rhs)
102 return !(lhs == rhs);
107 const Int32* m_local_id_ptr;
108 Int32 m_local_id_offset = 0;
118class ItemLocalIdListViewConstIteratorT
119:
public ItemLocalIdListViewConstIterator
125 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListViewConstIteratorT(
const Int32* local_id_ptr,
Int32 local_id_offset)
126 : ItemLocalIdListViewConstIterator(local_id_ptr, local_id_offset)
132 using ThatClass = ItemLocalIdListViewConstIteratorT<ItemType>;
133 using value_type = LocalIdType;
137 constexpr ARCCORE_HOST_DEVICE LocalIdType operator*()
const
139 return LocalIdType(m_local_id_offset + (*m_local_id_ptr));
142 constexpr ARCCORE_HOST_DEVICE ThatClass& operator++()
147 constexpr ARCCORE_HOST_DEVICE ThatClass& operator--()
152 constexpr ARCCORE_HOST_DEVICE
difference_type operator-(
const ThatClass& b)
const
154 return this->m_local_id_ptr - b.m_local_id_ptr;
156 friend constexpr ARCCORE_HOST_DEVICE ThatClass operator-(
const ThatClass& a,
difference_type v)
158 const Int32* ptr = a.m_local_id_ptr - v;
159 return ThatClass(ptr, a.m_local_id_offset);
161 friend constexpr ARCCORE_HOST_DEVICE ThatClass operator+(
const ThatClass& a,
difference_type v)
163 const Int32* ptr = a.m_local_id_ptr + v;
164 return ThatClass(ptr, a.m_local_id_offset);
174class ARCANE_CORE_EXPORT ItemLocalIdListView
177 template <
typename ItemType>
friend class ItemLocalIdListViewT;
178 friend class ItemVectorView;
179 using impl::ItemLocalIdListContainerView::localId;
180 using impl::ItemLocalIdListContainerView::m_size;
184 using ThatClass = ItemLocalIdListView;
189 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListView(
const Int32* ids,
Int32 s,
Int32 local_id_offset)
190 : BaseClass(ids, s, local_id_offset)
192 explicit constexpr ARCCORE_HOST_DEVICE ItemLocalIdListView(
const BaseClass& view)
202 constexpr ARCCORE_HOST_DEVICE
Int32 size()
const {
return m_size; }
207 friend ARCANE_CORE_EXPORT
bool operator==(
const ThatClass& lhs,
const ThatClass& rhs);
208 friend inline bool operator!=(
const ThatClass& lhs,
const ThatClass& rhs)
210 return !operator==(lhs, rhs);
212 friend ARCANE_CORE_EXPORT std::ostream& operator<<(std::ostream& o,
const ThatClass& lhs)
214 const BaseClass& v = lhs;
231class ItemLocalIdListViewT
232:
public ItemLocalIdListView
234 friend class ItemConnectivityContainerView;
236 friend ArcaneTest::MeshUnitTest;
238 friend class ItemInternalConnectivityList;
245 using SentinelType = const_iterator;
249 ItemLocalIdListViewT() =
default;
253 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListViewT(
const Int32* ids,
Int32 s,
Int32 local_id_offset)
254 : ItemLocalIdListView(ids, s, local_id_offset)
257 : ItemLocalIdListView(view)
262 constexpr ARCCORE_HOST_DEVICE LocalIdType operator[](
Int32 i)
const {
return LocalIdType(localId(i)); }
264 constexpr ARCCORE_HOST_DEVICE const_iterator begin()
const
266 return const_iterator(m_local_ids, m_local_id_offset);
268 constexpr ARCCORE_HOST_DEVICE SentinelType end()
const
270 return endIterator();
272 constexpr ARCCORE_HOST_DEVICE const_iterator endIterator()
const
274 return const_iterator(m_local_ids + m_size, m_local_id_offset);