在C++11中,'typedef'和'using'有什么区别?
在C++11中,'typedef'和'using'有什么区别?
我知道在C++11中我们现在可以使用using
来写类型别名,就像typedef
一样:
typedef int MyInt;
从我的理解来看,等同于:
using MyInt = int;
而这种新语法的出现是为了实现“模板typedef”:
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
但是,对于前两个非模板示例,标准中是否有其他微妙的差异?例如,typedef
是以“弱”方式进行别名处理的。也就是说,它不会创建新类型,只会创建新名称(在这些名称之间进行隐式转换)。
using
是否也是如此,或者它会生成一个新类型?是否有任何差异?
admin 更改状态以发布 2023年5月21日