double f(const int& i) { return 1.5 * i; }
template<
typename _out,
typename _in,
_out (*__f)(const _in&)>
class X {}; // template <... __f> class X {};
int main()
{
X<double, int, f> x; // X<f> x;
}
このコードを単純化するにはどうすればよいですか? コメントのようにコードを書きたいです。C++11 の result_of と decltype は役に立ちそうですが、クラス内の関数 f の入力と出力の型を推測する正しいコードを書くほど賢くありません。光を見るのを手伝ってくれませんか?ありがとう