4#ifndef _Stroika_Foundation_Containers_Concrete_Collection_Factory_h_
5#define _Stroika_Foundation_Containers_Concrete_Collection_Factory_h_
7#include "Stroika/Foundation/StroikaPreComp.h"
18namespace Stroika::Foundation::Containers::Factory {
30 static_assert (not is_reference_v<T>,
31 "typically if this fails its because a (possibly indirect) caller forgot to use forward<TTT>(), or remove_cvref_t");
50 optional<bool> fOptimizeForLookupSpeedOverUpdateSpeed;
99 static void Register (
const optional<Collection_Factory>& f = nullopt);
103 const bool fHints_OptimizeForLookupSpeedOverUpdateSpeed{
true};
117#include "Collection_Factory.inl"
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
Singleton factory object - Used to create the default backend implementation of a Collection<> contai...
Collection< T > ConstructedType
static const Collection_Factory & Default()
function< ConstructedType()> FactoryFunctionType
nonvirtual ConstructedType operator()() const
constexpr Collection_Factory()
static void Register(const optional< Collection_Factory > &f=nullopt)