可以使用 typedef 为类型添加別名:
typedef int Int;
当然,也可以使用 using:
using Int=int;
可以看到,第二种可读性更高。
另外,using 在模板环境中会更加强大。
假设有一个模板参数是 int 的类 grid,那么可以这么做:
using grid1=grid<1>;
那要声明一个指向返回 void,有一个 int 参数的函数的函数指针呢?
或许可以使用 typedef:
typedef void(*f1)(int);
可以看到,可读性很低,那使用 using 呢?
using f1=void(*)(int);
使用 using 明显更好理解:
所以,始终优先使用 using。
那如果将函数指针作参数呢?
void func(void(*f1)(int)){
//...
}
这无法使用 using 完成。
但是,使用 中的 function 可以更好地完成任务:
void func(function<void(int)>f1){
//...
}
所以,尽量不去使用 typedef。