boost::function< void( IF_MAP::iterator ) > bmf = std::mem_fun1< void, IF_MAP, IF_MAP::iterator >( &IF_MAP::erase ); boost::function< void( IF_MAP::iterator ) > bmf = boost::mem_fn< void, IF_MAP, IF_MAP::iterator >( &IF_MAP::erase ); 主要目的是编制以下代码 IF_MAP...
编辑:看来我误解了这个问题。鉴于当前声明的 set_callback,你不能删除 static修饰符 - 这会使它成为一个成员函数(需要一个对象来操作)并且你不能将一个成员函数指针传递给一个只需要一个正常函数指针。
头文件定义:static int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam);cpp文件中:int _stdcall XXX::EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam){} ...