首页 >后端开发 >C++ >对于非模板类型,'using”能否完全替换 C 11 中的'typedef”?

对于非模板类型,'using”能否完全替换 C 11 中的'typedef”?

Barbara Streisand
Barbara Streisand原创
2024-12-23 18:57:13378浏览

Can `using` Completely Replace `typedef` in C  11 for Non-Template Types?

C 11 中的 'using' 可以替换 'typedef' 吗?

在 C 11 中,'using' 现在可以定义类似于 'typedefs' 的类型别名:

typedef int MyInt; // Equivalent to:
using MyInt = int;

虽然“使用”最初是为了支持模板而引入的typedefs:

template< class T > using MyType = AnotherType< T, MyAllocatorType >;

这提出了一个问题:在处理非模板类型时,'typedef' 和 'using' 之间是否存在细微差别。

别名行为和含义

“typedef”和“using”都会为现有的创建别名或新名称类型,而不是定义一个新类型。这意味着别名和原始类型之间的转换是隐式的。

因此,“typedef”和“using”在别名行为方面没有区别。两种构造都会创建引用相同基础类型的弱别名。

以上是对于非模板类型,'using”能否完全替换 C 11 中的'typedef”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn