我知道,在C++11中,我们现在可以使用using来编写类型别名,如typedefs:
typedef int MyInt;
据我所知,相当于:
使用MyInt=int;
这种新的语法是通过努力找到一种表达“的方式”而产生的;模板类型定义";:
模板<;T级>;使用MyType=AnotherType<;T、 MyAllocatorType>;;
但是,对于前两个非模板示例,标准中还有其他细微差别吗?例如,typedefs在";“弱”;方法也就是说,它不创建新类型,只创建新名称(这些名称之间的转换是隐式的)
它与使用的相同,还是生成新类型?有什么不同吗
根据标准(重点矿山)(7.1.3.2),它们是等效的:
typedef名称也可以通过别名声明引入。这个
using关键字后面的标识符将成为typedef名称和
标识符后的可选属性说明符seq
到那个名字它的语义与
由typedef说明符引入。特别是
不定义新类型,且不应出现在类型id中