38class ItemInternalVectorViewConstIterator
40 friend class ItemInternalVectorView;
41 template <
int Extent>
friend class ItemConnectedListView;
46 ItemInternalVectorViewConstIterator(
const ItemInternalPtr* items,
47 const Int32* ARCANE_RESTRICT local_ids,
50 , m_local_ids(local_ids)
52 , m_local_id_offset(local_id_offset)
57 typedef ItemInternalVectorViewConstIterator ThatClass;
61 typedef std::random_access_iterator_tag iterator_category;
75 value_type operator*()
const {
return m_items[m_local_id_offset + m_local_ids[m_index]]; }
76 value_type operator->()
const {
return m_items[m_local_id_offset + m_local_ids[m_index]]; }
77 ThatClass& operator++()
82 ThatClass& operator--()
89 friend Integer operator-(
const ThatClass& a,
const ThatClass& b)
91 return a.m_index - b.m_index;
96 return ThatClass(a.m_items, a.m_local_ids, index, a.m_local_id_offset);
101 return ThatClass(a.m_items, a.m_local_ids, index, a.m_local_id_offset);
103 friend bool operator<(
const ThatClass& lhs,
const ThatClass& rhs)
105 return lhs.m_index <= rhs.m_index;
107 friend bool operator==(
const ThatClass& lhs,
const ThatClass& rhs)
111 return lhs.m_items == rhs.m_items && lhs.m_local_ids == rhs.m_local_ids && lhs.m_index == rhs.m_index;
113 friend bool operator!=(
const ThatClass& lhs,
const ThatClass& rhs)
115 return !(lhs == rhs);
120 const ItemInternalPtr* m_items;
121 const Int32* ARCANE_RESTRICT m_local_ids;
123 Int32 m_local_id_offset = 0;
139class ARCANE_CORE_EXPORT ItemInternalVectorView
143 friend class ItemVectorView;
144 friend class ItemInternalConnectivityList;
145 friend class ItemBase;
146 friend class ItemEnumeratorBase;
147 friend class SimdItemEnumeratorBase;
148 friend class ItemInternalEnumerator;
149 template <
int Extent>
friend class ItemConnectedListView;
151 template <
typename T>
friend class ItemEnumeratorBaseT;
156 ItemInternalVectorView() =
default;
161 : m_local_ids(local_ids)
163 , m_local_id_offset(local_id_offset)
165 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
170 : m_local_ids(count, local_ids)
172 , m_local_id_offset(local_id_offset)
174 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
179 : m_local_ids(local_ids._idsWithoutOffset())
181 , m_local_id_offset(local_ids.m_local_id_offset)
183 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
188 , m_shared_info(view.m_shared_info)
189 , m_local_id_offset(view.m_local_id_offset)
209 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView::operator[] instead")
210 ItemInternal* operator[](
Integer index)
const {
return m_shared_info->m_items_internal[m_local_ids[index]]; }
213 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this method")
214 ItemInternalArrayView
items()
const {
return m_shared_info->m_items_internal; }
216 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView to iterate")
217 const_iterator begin()
const
219 return const_iterator(_items().data(), m_local_ids.data(), 0, m_local_id_offset);
222 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView to iterate")
223 const_iterator end()
const
225 return const_iterator(_items().data(), m_local_ids.data(), this->size(), m_local_id_offset);
230 Int32 localIdOffset()
const {
return m_local_id_offset; }
235 ItemSharedInfo* m_shared_info = ItemSharedInfo::nullInstance();
236 Int32 m_local_id_offset = 0;
241 ItemInternalArrayView _items()
const {
return m_shared_info->m_items_internal; }