40 template<
class Derived,
class... Args>
41 requires std::derived_from<Derived, Base>
42 Derived* create(Args&&... args)
44 auto created = std::make_unique<Derived>(std::forward<Args>(args)...);
45 registry_.push_back(std::move(created));
46 return dynamic_cast<Derived*
>(
47 registry_.back().get());
51 std::vector<std::unique_ptr<Base>>