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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to