27 #ifndef LBANN_UTILS_FACTORY_HPP_INCLUDED 28 #define LBANN_UTILS_FACTORY_HPP_INCLUDED 31 #include <lbann_config.hpp> 33 #include <h2/patterns/factory/ObjectFactory.hpp> 54 template <
class BaseT,
56 typename BuilderT = std::function<std::unique_ptr<BaseT>()>,
57 template <typename, class>
class KeyErrorPolicy =
58 default_key_error_policy>
60 h2::factory::ObjectFactory<BaseT, KeyT, BuilderT, KeyErrorPolicy>;
72 template <
typename OutT,
typename... Args>
75 using type = std::function<std::unique_ptr<OutT>(Args...)>;
79 template <
typename OutT,
typename... Args>
84 #endif // LBANN_UTILS_FACTORY_HPP_INCLUDED A helper struct for creating builder signatures.
h2::factory::ObjectFactory< BaseT, KeyT, BuilderT, KeyErrorPolicy > generic_factory
Generic factory template.
std::function< std::unique_ptr< OutT >(Args...)> type
typename GenerateBuilderType_struct< OutT, Args... >::type generate_builder_type
A helper typedef for wrapping builder signatures.