在C++中,这样用typedef定义一个模板是不行的,
比如想这么做,没编译器支持的:
- template<class T>
- typedef std::vector<T> vec;
- vec<int> v; //想要作为std::vector<int> v; 的等价代码
复制代码
注意,以上是段错的代码,只是酒鬼的一厢情愿而已。。
c++11给出了一个解决方案,使用using关键词,
- template<class T>
- using vec = std::vector<T>;
- vec<int> v; //作为std::vector<int> v; 的等价代码
复制代码
这样,就达到了目标,
在一个已存在的模板基础上,通过using定义出了一个新的模板。
C++11的这个using方案,事实上已不可再称为typedef模板了,愉悦中的小小缺憾,
为什么不用typedef ?
为什么不用typedef ?
为什么不用typedef ?
(转载请注明来自:nuvoton-m0.com)
|