232 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
233 requires (not derived_from<remove_cvref_t<ITERABLE_OF_ADDABLE>,
Sequence<T>>)
234 explicit
Sequence (ITERABLE_OF_ADDABLE&& src)
235#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
238 AppendAll (forward<ITERABLE_OF_ADDABLE> (src));
239 _AssertRepValidType ();
243 template <IInputIterator<T> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
244 Sequence (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
247 explicit Sequence (shared_ptr<_IRep>&& rep)
noexcept;
248 explicit Sequence (
const shared_ptr<_IRep>& rep)
noexcept;
253 nonvirtual Sequence& operator= (Sequence&&) noexcept = default;
254 nonvirtual Sequence& operator= (const Sequence&) = default;
260 template <typename RESULT_CONTAINER = Sequence<T>, invocable<T> ELEMENT_MAPPER>
261 nonvirtual RESULT_CONTAINER Map (ELEMENT_MAPPER&& elementMapper) const
262 requires (convertible_to<invoke_result_t<ELEMENT_MAPPER, T>, typename RESULT_CONTAINER::value_type> or
263 convertible_to<invoke_result_t<ELEMENT_MAPPER, T>, optional<typename RESULT_CONTAINER::value_type>>);
271 template <derived_from<Iterable<T>> RESULT_CONTAINER = Sequence<T>, predicate<T> INCLUDE_PREDICATE>
272 nonvirtual RESULT_CONTAINER Where (INCLUDE_PREDICATE&& includeIfTrue) const;
298 template <IPotentiallyComparer<T> INORDER_COMPARER_TYPE = less<T>>
299 nonvirtual
Sequence OrderBy (INORDER_COMPARER_TYPE&& inorderComparer = INORDER_COMPARER_TYPE{})
const;
326 template <Common::IEqualsComparer<T> T_EQUALS_COMPARER = equal_to<T>>
332 template <
typename ELEMENT_COMPARER = compare_three_way>
339 nonvirtual
bool operator== (
const Sequence& rhs)
const
340 requires (equality_comparable<T>);
346 nonvirtual
auto operator<=> (
const Sequence& rhs)
const
347 requires (three_way_comparable<T>);
359 nonvirtual
void RemoveAll ();
360 template <predicate<T> PREDICATE>
361 nonvirtual
size_t RemoveAll (PREDICATE&& p);
375 nonvirtual
void SetAt (
size_t i, ArgByValueType<value_type> item);
378 struct TemporaryElementReference_;
405 nonvirtual
const value_type operator[] (
size_t i)
const;
431 nonvirtual TemporaryElementReference_ operator() (
size_t i);
447 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
448 nonvirtual optional<size_t>
IndexOf (ArgByValueType<value_type> i, EQUALS_COMPARER&& equalsComparer = {})
const;
449 template <Common::IEqualsComparer<T> EQUALS_COMPARER = equal_to<T>>
450 nonvirtual optional<size_t> IndexOf (
const Sequence& s, EQUALS_COMPARER&& equalsComparer = {})
const;
451 template <
typename IGNORED =
void>
452 nonvirtual
size_t IndexOf (
const Iterator<value_type>& i)
const;
469 nonvirtual
void Insert (
size_t i, ArgByValueType<value_type> item);
470 nonvirtual
void Insert (
const Iterator<value_type>& i, ArgByValueType<value_type> item);
478 template <IInputIterator<T> ITERATOR_OF_ADDABLE, sentinel_for<ITERATOR_OF_ADDABLE> ITERATOR_OF_ADDABLE2>
479 nonvirtual
void InsertAll (
size_t i, ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
480 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
481 nonvirtual
void InsertAll (
size_t i, ITERABLE_OF_ADDABLE&& s);
487 nonvirtual
void Prepend (ArgByValueType<value_type> item);
495 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
497 template <IInputIterator<T> ITERATOR_OF_ADDABLE>
498 nonvirtual
void PrependAll (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE&& end);
507 nonvirtual
void Append (ArgByValueType<value_type> item);
518 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
520 template <IInputIterator<T> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
521 nonvirtual
void AppendAll (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&& end);
551 nonvirtual
void Remove (
size_t i);
552 nonvirtual
void Remove (
size_t start,
size_t end);
563 template <
typename CONTAINER_OF_ADDABLE>
564 nonvirtual CONTAINER_OF_ADDABLE As ()
const;
565 template <
typename CONTAINER_OF_ADDABLE>
566 nonvirtual
void As (CONTAINER_OF_ADDABLE* into)
const;
572 nonvirtual optional<value_type> First ()
const;
573 nonvirtual optional<value_type> First (
const function<
bool (ArgByValueType<value_type>)>& that)
const;
579 nonvirtual
value_type FirstValue (ArgByValueType<value_type> defaultValue = {})
const;
585 nonvirtual optional<value_type> Last ()
const;
586 nonvirtual optional<value_type> Last (
const function<
bool (ArgByValueType<value_type>)>& that)
const;
592 nonvirtual value_type LastValue (ArgByValueType<value_type> defaultValue = {})
const;
600 nonvirtual
void push_back (ArgByValueType<value_type> item);
606 nonvirtual value_type back ()
const;
611 nonvirtual value_type front ()
const;
617 nonvirtual
void clear ();
625 nonvirtual
void erase (
size_t i);
626 nonvirtual Iterator<value_type> erase (
const Iterator<value_type>& i);
632 nonvirtual Sequence& operator+= (ArgByValueType<value_type> item);
633 nonvirtual Sequence& operator+= (
const Sequence& items);
648 nonvirtual tuple<_IRep*, Iterator<value_type>> _GetWritableRepAndPatchAssociatedIterator (
const Iterator<value_type>& i);
653 template <
typename T2>
654 using _SafeReadRepAccessor =
typename inherited::template _SafeReadRepAccessor<T2>;
659 template <
typename T2>
660 using _SafeReadWriteRepAccessor =
typename inherited::template _SafeReadWriteRepAccessor<T2>;
663 nonvirtual
void _AssertRepValidType ()
const;