sdkrystian wrote:

This does seem to cause an error in libstdc++:

```
include/c++/11/bits/shared_ptr.h:365:10: error: use 'template' keyword to treat 
'__shared_ptr' as a dependent template name

    this->__shared_ptr<_Tp>::operator=(__r);
              ^
```
Since `this` is dependent (it's of type `shared_ptr<T>*`) and `shared_ptr` 
inherits from `__shared_ptr<T>` (i.e. it has a dependent base), `template` is 
required to treat `<` as the start of a template argument list. I think we can 
detect these cases and diagnose this as a language extension. 


https://github.com/llvm/llvm-project/pull/92957
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to