|
发表于 2020-1-10 22:09:01
|
显示全部楼层
typename具有双重意义,在楼主所说的那种用法重二者没有区别,但是如
template<typename C>
void print2nd(const C& container)
{
if(container.size() >= 2) {
typename C::const_iterator iter(container.begin());//这里一定要,而只能加
//typename
........
}
}
原因是在任何时候你想要在template中指涉一个嵌套从属类型名称,就必须在紧临它的前一个位置放上typename,具体内容请参考effective c++ 条款42 |
|