[libcxx-commits] [clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

Krystian Stasiowski via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jul 19 13:10:31 PDT 2024


sdkrystian wrote:

I have a [new branch](https://github.com/sdkrystian/llvm-project/tree/reapply-cwg-1835-again) ready where:
- We only apply the resolution to CWG1835 in C++23 and later, and
- We issue a diagnostic when its application results in a missing template keyword that breaks whatever construct that follows the intended template name. e.g.
```cpp
template<int I>
struct A {
  int x;
};

template<int I>
struct B : A<I> {
  void f() {
    this->A<I>::f(); // with -std=c++20 and earlier: no error
                     // with -std=c++23 and later: 
                     //     error: no member named 'f' in the global namespace
                     //     error: missing 'template' keyword prior to dependent template name 'A'
  }
};
```
WDYAT? 

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


More information about the libcxx-commits mailing list