From efe67a700dca3d81def4ae12a9b8165f067cc100 Mon Sep 17 00:00:00 2001 From: skypjack Date: Mon, 2 Feb 2026 13:59:13 +0100 Subject: [PATCH] container: less sfinae, more concepts --- src/entt/container/dense_map.hpp | 6 ++++-- src/entt/container/dense_set.hpp | 6 ++++-- src/entt/container/table.hpp | 5 +++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/entt/container/dense_map.hpp b/src/entt/container/dense_map.hpp index 2dfa92b79..a6aaefefd 100644 --- a/src/entt/container/dense_map.hpp +++ b/src/entt/container/dense_map.hpp @@ -81,7 +81,8 @@ public: constexpr dense_map_iterator(const It iter) noexcept : it{iter} {} - template && std::is_constructible_v>> + template + requires !std::same_as && std::constructible_from constexpr dense_map_iterator(const dense_map_iterator &other) noexcept : it{other.it} {} @@ -175,7 +176,8 @@ public: : it{iter}, offset{pos} {} - template && std::is_constructible_v>> + template + requires !std::same_as && std::constructible_from constexpr dense_map_local_iterator(const dense_map_local_iterator &other) noexcept : it{other.it}, offset{other.offset} {} diff --git a/src/entt/container/dense_set.hpp b/src/entt/container/dense_set.hpp index 9189af2e1..573d100d1 100644 --- a/src/entt/container/dense_set.hpp +++ b/src/entt/container/dense_set.hpp @@ -48,7 +48,8 @@ public: constexpr dense_set_iterator(const It iter) noexcept : it{iter} {} - template && std::is_constructible_v>> + template + requires !std::same_as && std::constructible_from constexpr dense_set_iterator(const dense_set_iterator &other) noexcept : it{other.it} {} @@ -139,7 +140,8 @@ public: : it{iter}, offset{pos} {} - template && std::is_constructible_v>> + template + requires !std::same_as && std::constructible_from constexpr dense_set_local_iterator(const dense_set_local_iterator &other) noexcept : it{other.it}, offset{other.offset} {} diff --git a/src/entt/container/table.hpp b/src/entt/container/table.hpp index 9a7d03ab1..7e99c712f 100644 --- a/src/entt/container/table.hpp +++ b/src/entt/container/table.hpp @@ -1,10 +1,10 @@ #ifndef ENTT_CONTAINER_TABLE_HPP #define ENTT_CONTAINER_TABLE_HPP +#include #include #include #include -#include #include #include "../config/config.h" #include "../core/iterator.hpp" @@ -34,7 +34,8 @@ public: constexpr table_iterator(It... from) noexcept : it{from...} {} - template && ...)>> + template + requires (std::constructible_from && ...) constexpr table_iterator(const table_iterator &other) noexcept : table_iterator{std::get(other.it)...} {}