C++0x で関数ポインタ型を定義
alias declaration(Template Aliases) が実装されていれば using を使用して、わかりやすく関数ポインタ型を定義できるので試してみたました。
[ソース]
#include <boost/mpl/assert.hpp> #include <boost/type_traits/is_same.hpp> #include <iostream> using func_type = int(*)(int, int); // typedef int(*func_type)(int, int); // C++03 だとわかりづらい書き方だった int plus(int a, int b){ return a + b; } BOOST_MPL_ASSERT(( boost::is_same<func_type, decltype(&plus)> )); int main(){ func_type f = plus; std::cout << f(10, 2) << std::endl; return 0; }
[出力]
12