[llvm] [WIP][ADT] Avoid slow size queries on append (PR #136365)

Kazu Hirata via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 18 13:38:01 PDT 2025


================
@@ -36,10 +36,18 @@ template <typename T> class ArrayRef;
 
 template <typename IteratorT> class iterator_range;
 
-template <class Iterator>
-using EnableIfConvertibleToInputIterator = std::enable_if_t<std::is_convertible<
+namespace detail {
+template <typename Iterator, typename IteratorCategory>
+inline constexpr bool IsOfIteratorCategory = std::is_convertible_v<
     typename std::iterator_traits<Iterator>::iterator_category,
-    std::input_iterator_tag>::value>;
+    IteratorCategory>;
+
+template <typename Iterator>
+using EnableIfConvertibleToInputIterator =
+    std::enable_if_t<std::is_convertible_v<
+        typename std::iterator_traits<Iterator>::iterator_category,
+        std::input_iterator_tag>>;
----------------
kazutakahirata wrote:

Could we use the newly introduced `IsOfIteratorCategory` here?

https://github.com/llvm/llvm-project/pull/136365


More information about the llvm-commits mailing list