C++ typedef typename 作用
来源:互联网 发布:mysql offset limit 编辑:程序博客网 时间:2024/06/11 23:42
C++ typedef typename 作用
* C++的一些语法让人看着费解,其中就有:```typedef typename std::vector<T>::size_type size_type;```
vector::size_type
* 明白上述语法,首先要先看清vector::size_type的意思。参考《STL源码剖析》不难发现,其实: ``` template <class T,class Alloc=alloc> class vector{ public: //... typedef size_t size_type; //...}; ```
3. 这样就看得很清晰了,vector::size_type
是vector
的嵌套类型定义,其实际等价于 size_t
类型。
也就是说:
vector<int>::size_type ssize; //就等价于 size_t ssize;
为什么使用typename关键字
* typedef std::vector<T>::size_type size_type;//why not?* 实际上,模板类型在实例化之前,编译器并不知道`vector<T>::size_type`是什么东西,事实上一共有三种可能: * 静态数据成员
静态成员函数
嵌套类型
5. 那么此时typename
的作用就在此时体现出来了——定义就不再模棱两可。
总结
- 所以根据上述两条分析,
typedef typename std::vector<T>::size_type size_type;
- 语句的真是面目是:
- typedef创建了存在类型的别名,而typename告诉编译器std::vector::size_type是一个类型而不是一个成员。 *
转载链接
- 转载链接:http://blog.csdn.net/zhangxiao93/article/details/50569924#c-typedef-typename-作用
阅读全文
0 0
- C++ typedef typename 作用
- C++ typedef typename 作用
- C++ typedef typename 作用
- C++ typedef typename 作用
- [C++] typedef typename ?
- [C++]typedef typename什么意思?
- typename typedef
- typedef和typedef typename
- typedef和typename关键字
- typedef和typename关键字
- typedef和typename关键字
- typedef和typename关键字
- typename和typedef关键字
- typedef和typename
- typename和typedef关键字
- typedef和typename关键字
- typename和typedef
- typedef和typename关键字
- 动态SQL.绑定变量.静态SQL的性能对比
- Git服务器搭建
- 文章标题 第十二周学习报告
- Angular4 变更检测和Docheck钩子
- 实现领域驱动设计 (美)弗农著.pdf 免费下载
- C++ typedef typename 作用
- 各种报错
- Arduino--基础(二)--LCD Keypad Shield 的使用
- 郝斌老师c语言学习笔记----动态内存分配
- 简单说 JavaScript实现雪花飘落效果
- java多线程并发去调用一个类的静态方法安全性探讨
- Gradle进阶用法整理
- spring aop用法
- 简单的选择排序实现