diff --git a/libs/ecs/include/psemek/ecs/detail/index_container.hpp b/libs/ecs/include/psemek/ecs/detail/index_container.hpp index 3b9c4e86..a13bdbe5 100644 --- a/libs/ecs/include/psemek/ecs/detail/index_container.hpp +++ b/libs/ecs/include/psemek/ecs/detail/index_container.hpp @@ -32,6 +32,12 @@ namespace psemek::ecs::detail storage_.insert({uuid, ptr}); return *ptr; } + else if constexpr (std::is_constructible_v) + { + auto ptr = std::make_shared(std::forward(args)...); + storage_.insert({uuid, ptr}); + return *ptr; + } else { throw util::exception("Index " + util::type_name() + " is neither present nor constructible");