问题描述
- 在C++ primer中看到一行代码,有点不解。
-
template <typename T> class Blob{ public: typedef typename std::vector<T>::size_type size_type;
为什么中间有个typename,而不是直接写成这样:
typedef std::vector<T>::size_type size_type;
谢谢啦。
解决方案
这个是在模板定义中,在你的代码中std::vector::size_type 这个是一个类型,而不是一个变量,所以需要告诉编译器,它是一个类型,而不是变量
所以需要加typename来进行修饰,告诉编译器,不然编译器就会有出错。
解决方案二:
参考:http://blog.csdn.net/fallstones/article/details/6265764
解决方案三:
typename 是类型名称哦.只是提示你这个值是一个类型的名称.
解决方案四:
typename 是类型名称哦.只是提示你这个值是一个类型的名称.
时间: 2024-11-08 19:09:09