4#ifndef _Stroika_Foundation_Containers_Concrete_KeyedCollection_LinkedList_h_
5#define _Stroika_Foundation_Containers_Concrete_KeyedCollection_LinkedList_h_
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Containers/KeyedCollection.h"
20 template <
typename T,
typename KEY_TYPE,
typename TRAITS>
21 class KeyedCollection;
35 template <
typename T,
typename KEY_TYPE,
typename TRAITS = KeyedCollection_DefaultTraits<T, KEY_TYPE>>
44 using KeyType =
typename inherited::KeyType;
51 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER = equal_to<KEY_TYPE>>
56 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER = equal_to<KEY_TYPE>>
58 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
62#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
66 AssertRepValidType_ ();
70 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER = equal_to<KEY_TYPE>>
73 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IIterableOfTo<T> ITERABLE_OF_ADDABLE>
75 template <IInputIterator<T> ITERATOR_OF_ADDABLE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER = equal_to<KEY_TYPE>>
78 template <IInputIterator<T> ITERATOR_OF_ADDABLE, IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER = equal_to<KEY_TYPE>>
81 template <IEqualsComparer<KEY_TYPE> KEY_EQUALS_COMPARER, IInputIterator<T> ITERATOR_OF_ADDABLE>
91 template <qCompilerAndStdLib_Constra
intDiffersInTemplateRedeclaration_BWA (IEqualsComparer<KEY_TYPE>) KEY_EQUALS_COMPARER>
95 nonvirtual
void AssertRepValidType_ ()
const;
105#include "KeyedCollection_LinkedList.inl"
KeyedCollection_LinkedList<T> is an LinkedList-based concrete implementation of the KeyedCollection<T...
Implementation detail for KeyedCollection<KEY_TYPE, T, TRAITS> implementors.
a cross between Mapping<KEY, T> and Collection<T> and Set<T>
typename inherited::value_type value_type
typename TRAITS::KeyExtractorType KeyExtractorType
nonvirtual unsigned int AddAll(ITERATOR_OF_ADDABLE &&start, ITERATOR_OF_ADDABLE2 &&end)
Common::ComparisonRelationDeclaration< Common::ComparisonRelationType::eEquals, function< bool(ArgByValueType< KEY_TYPE >, ArgByValueType< KEY_TYPE >)> > KeyEqualityComparerType
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.