可能重复:
What are the differences between typedef and using in C++11?
下面的代码编译并运行。我的问题是,重命名模板专门化的"typedef“方法和"using”方法有什么不同?
template<typename T>
struct myTempl{
T val;
};
int main (int, char const *[])
{
using templ_i = myTempl<int>;
templ_i i;
i.val=4;
typedef myTempl<float> templ_f;
templ_f f;
f.val=5.3;
return 0;
}
编辑:
如果没有区别,你更喜欢哪一个?/为什么使用... = ...版本引入了吗?
发布于 2012-06-27 18:53:21
它们是一样的。
引用C++11标准(或具体的草案):
类型定义名称也可以通过别名声明来引入。使用关键字的后面的标识符成为一个类型定义符名,标识符后面的可选属性说明符-seq属于该类型定义符名。它具有相同的语义,好像它是由类型定义说明符引入的。特别是,它没有定义新的类型,也不应该出现在type-id中。
我认为“与think说明符相同的语义”已经说明了一切。
https://stackoverflow.com/questions/11224336
复制相似问题