関数の引数から非型の 関数ポインタ型のテンプレート引数(関数ポインタ)を推測することは可能ですか?
template <void(*fptr)()>
void test(void(*fp)()) { fp(); }
この関数を呼び出すには、関数テンプレート パラメーターを明示的に宣言する必要があります。
test<somefunc>(somefunc);
私はこの方法でもできることを知っています:
template <void(*fptr)()>
void test() { fp(); }
test<somefunc>();
しかし、私はこのようにすることが可能かどうか疑問に思っています:
template <void(*fptr)()>
void test() { fp(); }
test(somefunc);
コンパイラ (GCC 4.7) が関数の引数から推測するような方法で宣言することは可能ですか?
これを行う方法を本当に疑問に思っていました。-ブライアン