c++ typename 关键字

typename的提出 是为了解决 :: 符号歧义性,:: 既可以作为嵌套类型(std::vector::iterator * iter)又可以作为引用静态成员(A::iterator),这样的话,T::iterator * iter 会产生歧义,前者定义一个 vector::iterator 类型变量,后者如果 iter 恰好是全局变量,则表示一个乘法表达式。typename T::iterator * iter 这样的写法告诉编译器 T::iterator 是一个嵌套类型,消除歧义。

http://feihu.me/blog/2014/the-origin-and-usage-of-typename/

posted @ 2020-08-05 16:42  mangoCzp  阅读(107)  评论(0编辑  收藏  举报