我读过名为C ++的书,我不懂下面的代码:
typedef typename std::vector<int>::size_type size_type;
你能帮我解释typename
在这里的使用吗?
答案 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
类型不是普通类成员。