[llvm] [ADT] Fix llvm::concat_iterator for `ValueT == common_base_class *` (PR #144744)

Javier Lopez-Gomez via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 17 06:08:31 PDT 2025


================
@@ -996,13 +996,18 @@ class concat_iterator
 
   static constexpr bool ReturnsByValue =
       !(std::is_reference_v<decltype(*std::declval<IterTs>())> && ...);
-
+  static constexpr bool ReturnsConvertibleType =
+      (!std::is_same_v<
+           std::remove_reference_t<decltype(*std::declval<IterTs>())>,
+           ValueT> ||
----------------
jalopezg-git wrote:

A slightly improved version of this (that also removes cv-qualifiers) is at `all_types_same_as<FirstT, OtherTs...>` template struct.  Some simple tests have been added.

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


More information about the llvm-commits mailing list