+ static void on_creation_cb(const std::function<void(Container const&)>& cb) { on_creation.connect(cb); }
+ static void on_destruction_cb(const std::function<void(Container const&)>& cb) { on_destruction.connect(cb); }
+
+ explicit Container(const std::string& name, const std::string& type_name, Container* parent);
+ Container(const Container&) = delete;
+ Container& operator=(const Container&) = delete;