6#include "Stroika/Foundation/StroikaPreComp.h"
8#include "Stroika/Foundation/Common/Concepts.h"
9#include "Stroika/Foundation/Containers/Collection.h"
11#ifndef _Stroika_Foundation_Containers_SortedCollection_h_
12#define _Stroika_Foundation_Containers_SortedCollection_h_ 1
27 using Common::ITotallyOrderingComparer;
107 template <ITotallyOrderingComparer<T> COMPARER>
118#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
122 _AssertRepValidType ();
126 template <ITotallyOrderingComparer<T> COMPARER, IIterableOfTo<T> ITERABLE_OF_ADDABLE>
128 template <IInputIterator<T> ITERATOR_OF_ADDABLE>
131 template <ITotallyOrderingComparer<T> COMPARER, IInputIterator<T> ITERATOR_OF_ADDABLE>
168 using inherited::Remove;
169 nonvirtual
void Remove (ArgByValueType<T>
item);
214 nonvirtual
void _AssertRepValidType ()
const;
244#include "SortedCollection.inl"
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
nonvirtual void AddAll(ITERATOR_OF_ADDABLE &&start, ITERATOR_OF_ADDABLE2 &&end)
typename inherited::value_type value_type
Implementation detail for SortedCollection<T> implementors.
A SortedCollection is a Collection<T> which remains sorted (iteration produces items sorted) even as ...
nonvirtual ElementInOrderComparerType GetInOrderComparer() const
nonvirtual RESULT_CONTAINER Map(ELEMENT_MAPPER &&elementMapper) const
'override' Iterable<>::Map () function so RESULT_CONTAINER defaults to SortedCollection,...
nonvirtual ElementThreeWayComparerType GetElementThreeWayComparer() const
nonvirtual RESULT_CONTAINER Where(INCLUDE_PREDICATE &&includeIfTrue) const
subset of this SortedCollection matching filter-function
nonvirtual bool Contains(ArgByValueType< T > item) const
Compares items with the already associated GetInOrderComparer(), and returns true if the item is foun...
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.
nonvirtual CONTAINER_OF_T As(CONTAINER_OF_T_CONSTRUCTOR_ARGS... args) const
static constexpr default_sentinel_t end() noexcept
Support for ranged for, and STL syntax in general.