typedef Msp::TypeRegistry<CreateObject, DynamicObjectLoader &> TypeRegistry;
- Collection *coll;
- T *object;
+ Collection *coll = nullptr;
+ T *object = nullptr;
private:
- Loader *obj_loader;
- std::function<void(Collection &, const std::string &, T *)> store_func;
+ Loader *obj_loader = nullptr;
+ void (*store_func)(Collection &, const std::string &, T *) = nullptr;
static ActionMap shared_actions;
~DynamicObjectLoader() { delete object; delete obj_loader; }
private:
- virtual void init_actions();
+ void init_actions() override;
public:
T *get_object() { T *o = object; object = 0; return o; }
template<typename T, typename C>
DynamicObjectLoader<T, C>::DynamicObjectLoader(Collection *c):
- coll(c),
- object(0),
- obj_loader(0)
+ coll(c)
{
set_actions(shared_actions);
}