Why does one still need to disambiguate a dependent type with typename in the RHS of a using statement?

后端 未结 2 945
傲寒
傲寒 2021-02-01 13:57

I know very well why one needs to use typename for dependent types, since the compiler may not be able to disambiguate between a type and a variable declaration whe

2条回答
  •  醉梦人生
    2021-02-01 14:32

    The template argument type T does not, and can not implicitly carry with it its internal components. thus T::type is fundamentally a new type when the compiler looks at the uninstantiated template, hence the need to declare a new typename 'T::type'.

    Unfortunately, I think this issue will remain with us until the standard includes full-fledged Concepts.

提交回复
热议问题