[clang] [llvm] [clang][modules] Separate parsing of modulemaps (PR #119740)

Michael Spencer via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 13:08:14 PST 2024


================
@@ -2596,6 +2596,15 @@ template <typename T> using has_sizeof = decltype(sizeof(T));
 template <typename T>
 constexpr bool is_incomplete_v = !is_detected<detail::has_sizeof, T>::value;
 
+//===----------------------------------------------------------------------===//
+//     Extra additions to <variant>
+//===----------------------------------------------------------------------===//
+
+template <class... Ts> struct overloaded : Ts... {
+  using Ts::operator()...;
+};
+template <class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
+
----------------
Bigcheese wrote:

I just played around with it in [compiler explorer](https://godbolt.org/z/c7baxEjWP) and I'm not sure why it was implemented that way. Aggregate initialization just does the right thing. It does require using `{}` instead of `()` (until C++20), but I think that's the only difference. I'll just remove it from this patch and if we want to change makeVisitor that can happen separately.

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


More information about the llvm-commits mailing list