我知道在c++ 11中,我们现在可以使用using来编写类型别名,比如typedefs:
typedef int MyInt;
在我看来,相当于:
using MyInt = int;
新语法的出现是为了有一种表达“template typedef”的方法:
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
但是,对于前两个非模板示例,标准中还有其他细微的差异吗?例如,typedef以一种“弱”的方式进行混叠。也就是说,它不创建新类型,而只创建新名称(这些名称之间的转换是隐式的)。
它和使用是一样的还是生成一个新的类型?有什么不同吗?