From 392e522b6231c6033ad334777ce785b49cae45bb Mon Sep 17 00:00:00 2001 From: skypjack Date: Fri, 30 Jan 2026 18:31:08 +0100 Subject: [PATCH] meta: more concepts, less sfinae --- src/entt/meta/container.hpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/entt/meta/container.hpp b/src/entt/meta/container.hpp index b992107b8..a79e92c71 100644 --- a/src/entt/meta/container.hpp +++ b/src/entt/meta/container.hpp @@ -28,29 +28,32 @@ namespace entt { /*! @cond ENTT_INTERNAL */ namespace internal { -template +template struct sequence_container_extent: integral_constant {}; template -struct sequence_container_extent>>>: integral_constant> {}; +requires is_complete_v> +struct sequence_container_extent: integral_constant> {}; template inline constexpr std::size_t sequence_container_extent_v = sequence_container_extent::value; -template +template struct key_only_associative_container: std::true_type {}; template -struct key_only_associative_container>: std::false_type {}; +requires requires { typename Type::mapped_type; } +struct key_only_associative_container: std::false_type {}; template inline constexpr bool key_only_associative_container_v = key_only_associative_container::value; -template +template struct reserve_aware_container: std::false_type {}; template -struct reserve_aware_container>: std::true_type {}; +requires requires { typename Type::reserve; } +struct reserve_aware_container: std::true_type {}; template inline constexpr bool reserve_aware_container_v = reserve_aware_container::value;