sdkrystian wrote:

@dyung Per [[temp.dep.type] p10.11](http://eel.is/c++draft/temp.dep.type#10.11):
> A type is dependent if it is 
> - [...]
> - denoted by a _simple-template-id_ in which either the template name is a 
> template parameter or any of the template arguments is a dependent type or an 
> expression that is type-dependent or value-dependent or is a pack expansion,
> - [...]

In this case, `self` is a typedef for `COneSet` (the injected-class-name of the 
class template). When used as a _type-name_, the injected-class-name of a class 
template is equivalent to a _simple-template-id_ with the template arguments of 
the template parameters of that template. Despite that type _being_ the current 
instantiation, it is still considered to be a dependent type (name lookup has 
special rules when the lookup context is dependent _and_ is the current 
instantiation). 

Since `pSetOther` names a declaration that has a dependent type, 
`SWAP(pSetOther)` is a dependent call.

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

Reply via email to