关于C++模板中的嵌套依赖类型名与typename

typename一共就两种用法

①修饰模板参数,说明它是一个类型.此时可以用class关键字来代替.

②修饰嵌套依赖类型名

关于第②点要说明如下:

  1. 依赖类型名: 一个模板中的 依赖于一个模板参数的名字.
  2. 嵌套依赖类型名: 嵌套在一个类内部的一个依赖类型名

比如:

std::list

首先,它是一个依赖于模板参数的类型,所以它是一个依赖类型名

其次,它也是一个嵌套在std内部的类型,所以它是 嵌套依赖类型名,需要用typename来修饰.如下:

typename std::list m_lstT;

记住:

在涉及到一个模板中的嵌套依赖类型名的任何时候,都必须把typename放在紧挨着它的前面.

本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注