4#ifndef _Stroika_Foundation_Containers_Concrete_Set_LinkedList_h_
5#define _Stroika_Foundation_Containers_Concrete_Set_LinkedList_h_
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Containers/Set.h"
46 template <IEqualsComparer<T> EQUALS_COMPARER>
51 template <IEqualsComparer<T> EQUALS_COMPARER>
53 template <IIterableOfTo<T> ITERABLE_OF_ADDABLE>
56#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
60 AssertRepValidType_ ();
64 template <IEqualsComparer<T> EQUALS_COMPARER, IIterableOfTo<T> ITERABLE_OF_ADDABLE>
66 template <IInputIterator<T> ITERATOR_OF_ADDABLE>
68 template <IEqualsComparer<T> EQUALS_COMPARER, IInputIterator<T> ITERATOR_OF_ADDABLE>
79 template <qCompilerAndStdLib_Constra
intDiffersInTemplateRedeclaration_BWA (IEqualsComparer<T>) EQUALS_COMPARER>
83 nonvirtual
void AssertRepValidType_ ()
const;
94#include "Set_LinkedList.inl"
Set_LinkedList<T> is an LinkedList-based concrete implementation of the Set<T> container pattern.
Implementation detail for Set<T> implementors.
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
typename inherited::value_type value_type
Common::ComparisonRelationDeclaration< Common::ComparisonRelationType::eEquals, function< bool(T, T)> > ElementEqualityComparerType
nonvirtual void AddAll(ITERATOR_OF_ADDABLE &&start, ITERATOR_OF_ADDABLE2 &&end)
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.