读书人

《Effective C++》读书笔记之item42:

发布时间: 2012-09-04 14:19:30 作者: rapoo

《Effective C++》读书笔记之item42:了解typename的双重意义

1.当声明模板类型参数时,class和typename的意义相同。

2.模板内出现的名称如果依赖于某个模板参数,称为从属名称(dependent names);如果从属名称在类中呈嵌套状,称为嵌套从属名称

嵌套从属名称有可能导致解析困难,如:

template<typename IterT>void workWithIterator(IterT iter){typedef typename std::iterator_traits<IterT>::value_type value_type;value_type temp(*iter);...}


4.typename相关规则在不同的编译器上有不同的实现方式,因而关于它的使用可能造成移植性的降低。

读书人网 >C++

热点推荐