私はこの問題を抱えています:
template <void (*F)(int)> struct FunctionWrapper // This compiles and works
{
static void call_it()
{
F(0);
}
};
class MyClass
{
public:
static void callMe(int k)
{
}
};
template <void (MyClass::*F)(int)> struct FunctionWrapper // Error - F incompatible with declaration
{
static void call_it()
{
MyClass::F(0);
}
};
関数ポインタ(コンパイル時定数)を使用できるのに、クラスメンバー(静的でも)を使用できないのはなぜですか?