struct X { void foo() const; }; void (X::*pfn)() = &X::foo;
これは安全ではないかという話です。今のところ付いている返答はピントのずれたものばっかり。
ついでに、テンプレートパラメータにはfloatやdoubleは使えないなんていうのも新発見でした。こんなのです。
template<float f> struct X { };