From 9509d374317f3d1403ba7ea710ebcaf45984100a Mon Sep 17 00:00:00 2001 From: skypjack Date: Thu, 29 Jan 2026 16:59:28 +0100 Subject: [PATCH] stl: refine iterator concepts --- src/entt/stl/iterator.hpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/entt/stl/iterator.hpp b/src/entt/stl/iterator.hpp index 9f08cc881..ac300cd22 100644 --- a/src/entt/stl/iterator.hpp +++ b/src/entt/stl/iterator.hpp @@ -31,8 +31,28 @@ using std::sentinel_for; namespace internal { +template +concept has_iterator_category = requires { + typename std::iterator_traits::iterator_category; +}; + +template +concept has_iterator_concept = has_iterator_category && requires { + typename It::iterator_concept; +}; + +template +struct iterator_tag { + using type = typename std::iterator_traits::iterator_category; +}; + +template +struct iterator_tag { + using type = typename It::iterator_concept; +}; + template -concept has_iterator_tag = std::derived_from || std::derived_from::iterator_category, Tag>; +concept has_iterator_tag = std::derived_from::type, Tag>; } // namespace internal