151 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
152 requires (not derived_from<remove_cvref_t<ITERABLE_OF_ADDABLE>,
Collection<T>>)
154#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
157 AddAll (forward<ITERABLE_OF_ADDABLE> (src));
158 _AssertRepValidType ();
163 template <IInputIterator<T> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
164 Collection (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
167 explicit Collection (shared_ptr<_IRep>&& src)
noexcept;
168 explicit Collection (
const shared_ptr<_IRep>& src)
noexcept;
171 nonvirtual Collection& operator= (Collection&&) noexcept = default;
172 nonvirtual Collection& operator= (const Collection&) = default;
178 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
179 nonvirtual
bool Contains (ArgByValueType<
value_type> item, EQUALS_COMPARER&& equalsComparer = {})
const;
190 nonvirtual
void Add (ArgByValueType<value_type> item);
191 nonvirtual
void Add (ArgByValueType<value_type> item,
Iterator<T>* addedAt);
199 template <IInputIterator<T> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
200 nonvirtual
void AddAll (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
201 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
202 nonvirtual
void AddAll (ITERABLE_OF_ADDABLE&& items);
238 template <Common::IPotentiallyComparer<T> EQUALS_COMPARER = equal_to<T>>
239 nonvirtual
void Remove (ArgByValueType<value_type> item, EQUALS_COMPARER&& equalsComparer = {});
254 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
255 nonvirtual
bool RemoveIf (ArgByValueType<value_type> item, EQUALS_COMPARER&& equalsComparer = {});
256 template <predicate<T> PREDICATE>
257 nonvirtual
bool RemoveIf (PREDICATE&& p);
271 nonvirtual
void RemoveAll ();
272 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
274 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE,
typename EQUALS_COMPARER = equal_to<T>>
275 nonvirtual
size_t RemoveAll (
const ITERABLE_OF_ADDABLE& c, EQUALS_COMPARER&& equalsComparer = {});
276 template <predicate<T> PREDICATE>
277 nonvirtual
size_t RemoveAll (PREDICATE&& p);
283 template <
typename RESULT_CONTAINER = Collection<T>, invocable<T> ELEMENT_MAPPER>
284 nonvirtual RESULT_CONTAINER
Map (ELEMENT_MAPPER&& elementMapper)
const
285 requires (convertible_to<invoke_result_t<ELEMENT_MAPPER, T>,
typename RESULT_CONTAINER::value_type> or
286 convertible_to<invoke_result_t<ELEMENT_MAPPER, T>, optional<typename RESULT_CONTAINER::value_type>>);
302 template <derived_from<Iterable<T>> RESULT_CONTAINER = Collection<T>, predicate<T> INCLUDE_PREDICATE>
303 nonvirtual RESULT_CONTAINER
Where (INCLUDE_PREDICATE&& includeIfTrue)
const;
311 nonvirtual
void clear ();
319 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
320 nonvirtual
void erase (ArgByValueType<value_type> item, EQUALS_COMPARER&& equalsComparer = {});
335 nonvirtual
Collection& operator+= (ArgByValueType<value_type> item);
351 nonvirtual tuple<_IRep*, Iterator<value_type>> _GetWritableRepAndPatchAssociatedIterator (
const Iterator<value_type>& i);
356 template <
typename T2>
357 using _SafeReadRepAccessor =
typename inherited::template _SafeReadRepAccessor<T2>;
362 template <
typename T2>
363 using _SafeReadWriteRepAccessor =
typename inherited::template _SafeReadWriteRepAccessor<T2>;
366 nonvirtual
void _AssertRepValidType ()
const;