如何在 c++ 中使用类型名

How to use typename in c++?

本文关键字:类型 c++      更新时间:2023-10-16

我读过名为C++入门的书,但我不明白以下代码:

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

你能帮我解释一下typename在这里的用法吗?

你可以

这样阅读typedef typename std::vector::size_type size_type

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

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

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

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