使用别名声明

Version >= C++ 11

using 的语法非常简单:要定义的名称位于左侧,定义位于右侧。无需扫描即可查看名称的位置。

using I = int;
using A = int[100];             // array of 100 ints
using FP = void(*)(int);        // pointer to function of int returning void
using MP = void (Foo::*)(int);  // pointer to member function of Foo of int returning void

使用 using 创建类型别名与使用 typedef 创建类型别名具有完全相同的效果。它只是完成同样事情的另一种语法。

typedef 不同,using 可以模板化。使用 using 创建的 template typedef 称为别名模板