6#include "Stroika/Foundation/StroikaPreComp.h"
8#include "Stroika/Foundation/Common/Concepts.h"
9#include "Stroika/Foundation/Containers/Association.h"
11#ifndef _Stroika_Foundation_Containers_SortedAssociation_h_
12#define _Stroika_Foundation_Containers_SortedAssociation_h_ 1
20 using Common::ITotallyOrderingComparer;
63 template <
typename KEY_TYPE,
typename MAPPED_VALUE_TYPE>
111 template <ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER>
123#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
126 _AssertRepValidType ();
128 _AssertRepValidType ();
132 template <ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER, IIterableOfTo<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERABLE_OF_ADDABLE>
134 template <IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE>
137 template <ITotallyOrderingComparer<KEY_TYPE> KEY_COMPARER, IInputIterator<KeyValuePair<KEY_TYPE, MAPPED_VALUE_TYPE>> ITERATOR_OF_ADDABLE>
201 nonvirtual
void _AssertRepValidType ()
const;
226#include "SortedAssociation.inl"
Implementation detail for Association<T> implementors.
An Association pairs key values with (possibly multiple or none) mapped_type values....
nonvirtual CONTAINER_OF_Key_T As() const
nonvirtual void AddAll(ITERABLE_OF_ADDABLE &&items)
typename inherited::value_type value_type
Implementation detail for SortedAssociation<T> implementors.
nonvirtual KeyThreeWayComparerType GetKeyThreeWayComparer() const
Common::ComparisonRelationDeclaration< Common::ComparisonRelationType::eThreeWayCompare, function< strong_ordering(ArgByValueType< KEY_TYPE >, ArgByValueType< KEY_TYPE >)> > KeyThreeWayComparerType
generic eThreeWayCompare comparer (function) object for KEY_TYPE of the association.
Common::ComparisonRelationDeclaration< Common::ComparisonRelationType::eStrictInOrder, function< bool(ArgByValueType< KEY_TYPE >, ArgByValueType< KEY_TYPE >)> > KeyInOrderComparerType
generic eStrictInOrder comparer (function) object for KEY_TYPE of the association.
nonvirtual RESULT_CONTAINER Where(INCLUDE_PREDICATE &&includeIfTrue) const
subset of this SortedAssociation matching filter-function
nonvirtual RESULT_CONTAINER Map(ELEMENT_MAPPER &&elementMapper) const
'override' Iterable<>::Map () function so RESULT_CONTAINER defaults to SortedAssociation,...
nonvirtual KeyInOrderComparerType GetKeyInOrderComparer() const
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.
static constexpr default_sentinel_t end() noexcept
Support for ranged for, and STL syntax in general.