13template <
class IdentifierType,
class ProductType>
25 const char*
what()
const noexcept override;
67 typename IdentifierType,
68 class AbstractProduct = BaseClass*,
73class Factory :
public FactoryErrorPolicy<IdentifierType, AbstractProduct>
121#include "smgl/FactoryImpl.hpp"
void ReserveAdditional(std::size_t count)
bool Register(const IDType &id, ProductCreator creator, const std::type_info &info)
AbstractProduct CreateObject(const IDType &id)
bool IsRegistered(const IDType &id)
void Reserve(std::size_t count)
bool Deregister(const IDType &id)
IDType GetTypeIdentifier(const std::type_info &info)
std::vector< IDType > GetRegisteredIdentifiers() const
Default exception thrown when registered type not found.
const char * what() const noexcept override
IdentifierType unknownId_
Default factory error policy.
static IdentifierType OnUnnamedType(const std::type_info &info)
static ProductType OnUnknownType(const IdentifierType &id)
Project top-level namespace.