関数ポインタの型に名前を付ける

C++03だと関数ポインタの型に名前を付けるのにtypedefを使用していましたが

typedef double (*analysis_fp)(const vector<Student_info>&);

型名analysis_fpが真ん中にあるのでとてもわかりにくいです。



C++0xのalias declarationでは型の別名をusingと=を使用して書くことができるので以下のように書けます。

using analysis_fp = double (*)(const vector<Student_info>&);

こっちの方がわかりやすいので、C++0xではtypedefよりもusingを使うことをオススメします。



N1489 Templates aliases for C++