38template <
typename T,
typename CreatorInput>
42 typedef std::function< std::unique_ptr<T> (
const CreatorInput&) >
Func;
53 std::unique_ptr<T>
create(
const std::string
type,
54 const CreatorInput& input)
const;
64template <
typename T,
typename CreatorInput>
71template <
typename T,
typename CreatorInput>
74 std::vector<std::string> list;
78 list.push_back(b.first);
85template <
typename T,
typename CreatorInput>
87 const CreatorInput& input)
const
96 catch (std::out_of_range &)
GridLogger GridLogError(1, "Error", GridLogColours, "RED")
GridLogger GridLogDebug(1, "Debug", GridLogColours, "PURPLE")
std::vector< std::string > getBuilderList(void) const
std::map< std::string, Func > builder_
virtual std::string obj_type() const =0
virtual ~Factory(void)=default
void registerBuilder(const std::string type, const Func &f)
std::function< std::unique_ptr< T >(const CreatorInput &) > Func
std::unique_ptr< T > create(const std::string type, const CreatorInput &input) const