8namespace Stroika::Foundation::Containers::Factory {
15 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
20 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
25 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wunused-lambda-capture\"");
26 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
29 if constexpr (same_as<EQUALS_COMPARER, equal_to<T>> and totally_ordered<T>) {
33 if (hints.fOptimizeForLookupSpeedOverUpdateSpeed.value_or (
true)) {
35 return [] (
const EQUALS_COMPARER& equalsComparer) {
return Concrete::MultiSet_Array<T, TRAITS>{equalsComparer}; };
38 return [] (
const EQUALS_COMPARER& equalsComparer) {
return Concrete::MultiSet_LinkedList<T, TRAITS>{equalsComparer}; };
44 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wunused-lambda-capture\"");
45 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
48 return AccessDefault_ ();
50 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
53 return this->fFactory_ (equalsComparer);
55 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
60 template <
typename T,
typename TRAITS, IEqualsComparer<T> EQUALS_COMPARER>
Singleton factory object - Used to create the default backend implementation of a MultiSet<> containe...
constexpr MultiSet_Factory()