Typename是什么意思?该函数应该返回什么?
typename BSTMap<KEY,T>::TN* BSTMap<KEY,T>::find_key (TN* root, const KEY& key) const {..}
答案 0 :(得分:6)
返回类型为BSTMap<KEY,T>::TN*
。
关键字typename
是告诉编译器嵌套名称TN
命名类型所必需的。例如。 TN
可以是嵌套的typedef名称,嵌套类类型等。当您使用typename
语法引用嵌套名称时,几乎总是需要这个额外的T1::T2
关键字,其中T1
部分取决于模板参数。
在许多情况下没有它,编译器将无法正确“理解”代码(例如,确定*
字符是否声明指针,作为一元解引用运算符还是用作二进制乘法操作者)。