VC++7.1でmanaged C++を許している(マネージ拡張を有効にしている)とboost::functionが正しく機能しません.managed C++側のバグのようです.
boost::function<bool (int, int)> f; f = std::less<int>(); assert(f); // managed拡張を有効にしているとassertion failureする f(1, 2); // 呼ぼうとすると落ちる(恐らく内部のポインタがヌルのまま)
プロジェクトのプロパティからマネージ拡張をoffにすれば取り合えずこのbugは避けられます.
参考: