如何在c ++中使用typename?

时间:2013-12-19 06:23:57

标签: c++ typename

我读过名为C ++的书,我不懂下面的代码:

typedef typename std::vector<int>::size_type size_type;

你能帮我解释typename在这里的使用吗?

1 个答案:

答案 0 :(得分:0)

您可以这样阅读typedef typename std::vector::size_type size_type

typedef typename std::vector::size_type size_type,就像typedef __int64 INT64一样。

为什么我们需要typename beforce std::vector::size_type?它只是告诉编译器std::vector::size_type是一个类型而不是普通的类成员。它用于消除歧义。

但我想也许某些编译器可以自动检测std::vector::size_type是一种类型。

因此,typedef只为现有类型创建别名,typename告诉编译std::vector::size_type类型不是普通类成员。