关于typename和class的使用

来源:互联网 发布:win10mobile软件 编辑:程序博客网 时间:2024/06/04 18:26


一般情况下,是用typename还是用class纯粹是一个风格问题。但是在一种情况下,它就不是一个风格问题了。为了避免潜在的语法解析二义性,你需要在从属于形式类型参数的类型名前面使用typename。这样的类型被称为从属类型,用一个例子可以说明这一点。假设你要写一个函数模板,给它一个STL容器,它将返回容器中的最后一个元素是否大于第一个元素。下面是一种实现方式:

template <typename C>

bool lastGreatThanFirst(const C&container)

{

      if(container.empty())

             returnfalse;

      typename C::const_iterator begin(container.begin());

      typename C::const_iterator end(container.end());

      return *--end > *begin;

}

2 0