2
次の問題を遭遇したとき、私はboost :: functionで遊んでいました。関数ポインタでのboost :: functionの奇妙な動作
typedef int(*IFnPtr2)(Interface*,int,bool&);
IFnPtr2 p = NULL;
boost::function<int(Interface*,int,bool&)> fn; // this is fine
boost::function<IFnPtr2> fn2; // this gives me a compile error
同じ型を表す型と型定義で使用すると、関数が異なる動作をする理由がわかりました。私はtypedefを使わないので問題はありませんが、なぜ違いがあるのか不思議です。
私が使用しているコンパイラはMSVC2010です。
+1微妙に。ナイスキャッチ。 – fbrereto