我有一个功能:
std::function<void(sp_session*)> test(void(MainWindow::*handler)())
{
return ...;
}
我想用等效的 std::mem_fn 类型替换处理程序的类型。
类型是什么?
我试过这个:
std::function<void(sp_session*)> test(std::mem_fn<void(), MainWindow> handler)
{
return ...;
}
但是 VC++ 2010 吐出这些错误:
error C2146: syntax error : missing ')' before identifier 'handler'
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)
所以我不确定我做错了什么。