-template<typename C, typename... Args>
-void SourcePackage::Loader::component(Args... args, const string &n)
-{
- if(any_of(obj.components.begin(), obj.components.end(), [&n](const Component *c){ return c->get_name()==n; }))
- throw key_error(n);
- C *comp = new C(obj, n, args...);
- load_sub(*comp);
- obj.components.push_back(comp);
-}
-