diff --git a/TODO b/TODO index 719cf1db4..833531de3 100644 --- a/TODO +++ b/TODO @@ -23,5 +23,4 @@ * review and suppress warnings, if any * extract only the type within type_info, hash its name (more portable) * registry - - ::get -> use std::forward/forward_as_tuple and remove one of them (also try_get and the others) - ::group improve, reduce code diff --git a/src/entt/entity/registry.hpp b/src/entt/entity/registry.hpp index 3f921eb27..99c04e1dc 100644 --- a/src/entt/entity/registry.hpp +++ b/src/entt/entity/registry.hpp @@ -513,7 +513,7 @@ public: return generate(); } else { const entity_type entt = generate(); - return std::tuple({}))...>{entt, assign(entt)...}; + return std::tuple_cat(std::make_tuple(entt), std::forward_as_tuple(assign(entt)...)); } } @@ -714,7 +714,7 @@ public: if constexpr(sizeof...(Component) == 1) { return (assure().get(entity), ...); } else { - return std::tuple({}))...>{get(entity)...}; + return std::forward_as_tuple(get(entity)...); } } @@ -726,7 +726,7 @@ public: if constexpr(sizeof...(Component) == 1) { return (assure().get(entity), ...); } else { - return std::tuple({}))...>{get(entity)...}; + return std::forward_as_tuple(get(entity)...); } } @@ -780,7 +780,7 @@ public: if constexpr(sizeof...(Component) == 1) { return (assure().try_get(entity), ...); } else { - return std::tuple({}))...>{try_get(entity)...}; + return std::make_tuple(try_get(entity)...); } } @@ -790,7 +790,7 @@ public: if constexpr(sizeof...(Component) == 1) { return (assure().try_get(entity), ...); } else { - return std::tuple({}))...>{try_get(entity)...}; + return std::make_tuple(try_get(entity)...); } }