180 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
181 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
182 explicit Association (KEY_EQUALS_COMPARER&& keyEqualsComparer);
186 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
187 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER>
188 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, const initializer_list<
KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>& src);
189 template <IIterableOfTo<
KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
191 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE> and
192 not derived_from<remove_cvref_t<ITERABLE_OF_ADDABLE>,
Association<KEY_TYPE, MAPPED_VALUE_TYPE>>)
193#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
196 AddAll (forward<ITERABLE_OF_ADDABLE> (src));
197 _AssertRepValidType ();
201 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
202 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, ITERABLE_OF_ADDABLE&& src);
203 template <IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
204 Association (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&&
end)
205 requires (IEqualsComparer<equal_to<KEY_TYPE>, KEY_TYPE>);
206 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE,
207 sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
208 Association (KEY_EQUALS_COMPARER&& keyEqualsComparer, ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&&
end);
211 explicit Association (shared_ptr<_IRep>&& rep)
noexcept;
212 explicit Association (
const shared_ptr<_IRep>& rep)
noexcept;
223 nonvirtual KeyEqualsCompareFunctionType GetKeyEqualsComparer () const;
309 template <typename THROW_IF_MISSING>
334 nonvirtual
bool ContainsKey (ArgByValueType<key_type> key)
const;
340 nonvirtual
size_t OccurrencesOf (ArgByValueType<key_type> item)
const;
348 template <Common::IEqualsComparer<MAPPED_VALUE_TYPE> VALUE_EQUALS_COMPARER = equal_to<MAPPED_VALUE_TYPE>>
349 nonvirtual
bool ContainsMappedValue (ArgByValueType<mapped_type> v,
const VALUE_EQUALS_COMPARER& valueEqualsComparer = {})
const;
357 nonvirtual
void Add (ArgByValueType<key_type> key, ArgByValueType<mapped_type> newElt);
358 nonvirtual
void Add (ArgByValueType<value_type> p);
370 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
371 nonvirtual
void AddAll (ITERABLE_OF_ADDABLE&& items);
372 template <IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_ADDABLE>> ITERATOR_OF_ADDABLE2>
373 nonvirtual
void AddAll (ITERATOR_OF_ADDABLE&& start, ITERATOR_OF_ADDABLE2&&
end);
385 nonvirtual
void Remove (ArgByValueType<key_type> key);
394 nonvirtual
bool RemoveIf (ArgByValueType<key_type> key);
408 template <
typename ITERABLE_OF_KEY_OR_ADDABLE>
409 nonvirtual
size_t RemoveAll (
const ITERABLE_OF_KEY_OR_ADDABLE& items);
410 template <
typename ITERATOR_OF_KEY_OR_ADDABLE, sentinel_for<remove_cvref_t<ITERATOR_OF_KEY_OR_ADDABLE>> ITERATOR_OF_KEY_OR_ADDABLE2>
411 nonvirtual
size_t RemoveAll (ITERATOR_OF_KEY_OR_ADDABLE&& start, ITERATOR_OF_KEY_OR_ADDABLE2&&
end);
412 template <predicate<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> PREDICATE>
413 nonvirtual
size_t RemoveAll (PREDICATE&& p);
449 template <IIterableOfTo<KEY_TYPE> ITERABLE_OF_KEY_TYPE>
450 nonvirtual
void RetainAll (
const ITERABLE_OF_KEY_TYPE& items);
456 template <
typename RESULT_CONTAINER = Association<KEY_TYPE, MAPPED_VALUE_TYPE>, invocable<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ELEMENT_MAPPER>
457 nonvirtual RESULT_CONTAINER
Map (ELEMENT_MAPPER&& elementMapper)
const
458 requires (convertible_to<invoke_result_t<ELEMENT_MAPPER, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>,
typename RESULT_CONTAINER::value_type> or
459 convertible_to<invoke_result_t<ELEMENT_MAPPER, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>, optional<typename RESULT_CONTAINER::value_type>>)
477 template <derived_from<Iterable<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>> RESULT_CONTAINER = Association<KEY_TYPE, MAPPED_VALUE_TYPE>,
typename INCLUDE_PREDICATE>
478 nonvirtual RESULT_CONTAINER
Where (INCLUDE_PREDICATE&& includeIfTrue)
const
479 requires (predicate<INCLUDE_PREDICATE, KEY_TYPE> or predicate<INCLUDE_PREDICATE, KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>>);
498 template <
typename CONTAINER_OF_KEYS>
514 template <
typename CONTAINER_OF_Key_T>
515 nonvirtual CONTAINER_OF_Key_T
As ()
const;
533 template <qCompilerAndStdLib_Constra
intDiffersInTemplateRedeclaration_BWA (Common::IEqualsComparer<MAPPED_VALUE_TYPE>) VALUE_EQUALS_COMPARER = equal_to<MAPPED_VALUE_TYPE>>
544 requires (equality_comparable<MAPPED_VALUE_TYPE>);
553 ArgByValueType<key_type> key, ArgByValueType<mapped_type> newValue,
554 const function<
mapped_type (ArgByValueType<mapped_type>, ArgByValueType<mapped_type>)>& f =
555 [] (ArgByValueType<mapped_type> l, ArgByValueType<mapped_type> r) ->
mapped_type {
return l + r; },
562 nonvirtual
void erase (ArgByValueType<key_type> key);
563 nonvirtual Iterator<value_type>
erase (
const Iterator<value_type>& i);
569 nonvirtual
void clear ();
574 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
575 nonvirtual
Association operator+ (
const ITERABLE_OF_ADDABLE& items)
const;
580 template <IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
581 nonvirtual
Association& operator+= (
const ITERABLE_OF_ADDABLE& items);
586 template <
typename ITERABLE_OF_KEY_OR_ADDABLE>
587 nonvirtual
Association& operator-= (
const ITERABLE_OF_KEY_OR_ADDABLE& items);
592 template <
typename T2>
593 using _SafeReadRepAccessor =
typename inherited::template _SafeReadRepAccessor<T2>;
598 template <
typename T2>
599 using _SafeReadWriteRepAccessor =
typename inherited::template _SafeReadWriteRepAccessor<T2>;
602 nonvirtual
void _AssertRepValidType ()
const;