typedef和C ++ 11类型别名之间的区别
这个问题在这里已经有了答案:
两者绝对没有区别。
如果你看看这个标准:
7.1.3 typedef规范[dcl.typedef]
typedef名称也可以通过别名声明引入。 using
关键字后面的标识符成为typedef名称。 它具有与typedef
说明符所引入的相同的语义。 特别是它没有定义一个新的类型,它不会出现在type-id中。
7.3.3使用声明[namespace.udecl]
如果using-declaration使用关键字typename并指定依赖名称(14.6.2),则using-declaration引入的名称将被视为typedef-name。
但是从此页面:http://en.cppreference.com/w/cpp/language/type_alias
据说 :
类型别名与类型定义相似, 但是具有使用模板的优点。
这似乎是:
// template type alias
template<class T> using ptr = T*;
// the name 'ptr<T>' is now an alias for pointer to T
ptr<int> x;
只有using
指令才有可能。
别忘了这是一个C ++ 11功能。 一些编译器还不支持它。
没有区别。
typedef为该类型提供别名。
链接地址: http://www.djcxy.com/p/78639.html