[clang] [clang-tools-extra] [clang] Implement CWG2413 (implicit `typename` in conversion operators) (PR #195207)

Victor Chernyakin via cfe-commits cfe-commits at lists.llvm.org
Fri May 1 09:53:19 PDT 2026


================
@@ -8,6 +8,16 @@
 
 // cwg2406 is in cwg2406.cpp
 
+namespace cwg2413 { // cwg2413: 23
+#if __cplusplus >= 202002L
+template <typename T>
+struct S {
+  operator T::R();
+  void f() { operator T::R(); }
----------------
localspook wrote:

> This is missing extension warnings in language modes prior to C++20.

Added

> It's probably worth an extension warning in C++20 mode as well,

The paper wasn't a DR, but the CWG2413 itself was --- I would interpret that as meaning *this part* of the paper retroactively applies to C++20?

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


More information about the cfe-commits mailing list