97 template <Common::ITotallyOrderingComparer<T> COMPARER>
102 requires (Common::ITotallyOrderingComparer<less<T>, T>);
103 template <Common::ITotallyOrderingComparer<T> COMPARER>
104 SortedMultiSet (COMPARER&& comparer, const initializer_list<T>& src);
106 requires (Common::ITotallyOrderingComparer<less<T>, T>);
107 template <Common::ITotallyOrderingComparer<T> COMPARER>
108 SortedMultiSet (COMPARER&& comparer, const initializer_list<value_type>& src);
109 template <IIterableOfTo<typename TRAITS::CountedValueType> ITERABLE_OF_ADDABLE>
111 requires (Common::ITotallyOrderingComparer<less<T>, T> and not derived_from<remove_cvref_t<ITERABLE_OF_ADDABLE>,
SortedMultiSet<T, TRAITS>>)
112#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
115 this->AddAll (forward<ITERABLE_OF_ADDABLE> (src));
116 _AssertRepValidType ();
120 template <Common::ITotallyOrderingComparer<T> COMPARER, IIterableOfTo<
typename TRAITS::CountedValueType> ITERABLE_OF_ADDABLE>
121 SortedMultiSet (COMPARER&& comparer, ITERABLE_OF_ADDABLE&& src);
122 template <IInputIterator<
typename TRAITS::CountedValueType> ITERATOR_OF_ADDABLE>
123 SortedMultiSet (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE&& end)
125 template <IInputIterator<
typename TRAITS::CountedValueType> COMPARER, IInputIterator<
typename TRAITS::CountedValueType> ITERATOR_OF_ADDABLE>
126 SortedMultiSet (COMPARER&& comparer, ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE&& end);
129 explicit SortedMultiSet (shared_ptr<_IRep>&& src)
noexcept;
130 explicit SortedMultiSet (
const shared_ptr<_IRep>& src)
noexcept;
135 nonvirtual SortedMultiSet& operator= (SortedMultiSet&&) noexcept = default;
136 nonvirtual SortedMultiSet& operator= (const SortedMultiSet&) = default;
142 nonvirtual ElementInOrderComparerType GetElementInOrderComparer () const;
147 nonvirtual ElementThreeWayComparerType GetElementThreeWayComparer () const;
153 template <typename RESULT_CONTAINER = SortedMultiSet<T, TRAITS>, invocable<T> ELEMENT_MAPPER>
154 nonvirtual RESULT_CONTAINER Map (ELEMENT_MAPPER&& elementMapper) const
155 requires (convertible_to<invoke_result_t<ELEMENT_MAPPER, typename TRAITS::CountedValueType>, typename RESULT_CONTAINER::value_type> or
156 convertible_to<invoke_result_t<ELEMENT_MAPPER, typename TRAITS::CountedValueType>, optional<typename RESULT_CONTAINER::value_type>>);
162 template <derived_from<Iterable<typename TRAITS::CountedValueType>> RESULT_CONTAINER = SortedMultiSet<T, TRAITS>, predicate<typename TRAITS::CountedValueType> INCLUDE_PREDICATE>
163 nonvirtual RESULT_CONTAINER Where (INCLUDE_PREDICATE&& includeIfTrue) const;
169 nonvirtual strong_ordering operator<=> (const
SortedMultiSet& rhs) const;
174 template <typename T2>
175 using _SafeReadRepAccessor = typename
inherited::template _SafeReadRepAccessor<T2>;
180 template <typename T2>
181 using _SafeReadWriteRepAccessor = typename
inherited::template _SafeReadWriteRepAccessor<T2>;
184 nonvirtual
void _AssertRepValidType () const;