| 发表于:2007-01-02 14:25:2510楼 得分:0 |
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 | | |
|