Effective C++ .44 typename和class的不同
2024-10-18 12:19:57
在C++模板中的类型参数一般可以使用typename和class,两者没有什么不同。但是typename比class多项功能:
“任何时候当你想要在template中指涉一个嵌套从属类型名称,就必须在其前面加上关键字typename”
因为C++默认情况下把属性都作为值来看待而不是类型。
#include <iostream>
#include <cstdlib> class Integer {
public:
typedef int value_type;
}; class Double {
public:
typedef double value_type;
}; template<class DataType>
class Storage {
public:
typename DataType::value_type data;
}; int main() {
Storage<Integer> s; s.data = 3.4/; std::cout<<s.data<<std::endl; return ;
}
最新文章
- 简单的两数之和再次乱入<;<; Add Two Numbers >;>;
- 揭开嵌入式c面试题背后的玄机
- 高性能浏览器网络(High Performance Browser Networking) 第二章
- [LeetCode290]Word Pattern
- NuGet管理
- 在2002年的老电脑上安装Debian
- linux允许root远程登录
- Kali Linux入坑之基本配置(2018.1)
- Selenium自动化测试-unittest单元测试框架使用
- Golang源码探索(二) 协程的实现原理(转)
- bzoj 2832
- Redis之发布订阅
- Mybatis的in使用
- MVC 自定义特性(验证用户登录session是否已经过期)
- mysql 5.7.10 启动多实例笔记
- 触发器的SQL语法
- Struts2 数据校验之四兄弟
- docker images 按名称过滤
- 2015多校第6场 HDU 5354 Bipartite Graph CDQ,并查集
- 【树形dp】TELE