1
我嘗試使用std ::函數,像這樣的成員函數:VS2013的std ::與成員函數功能
struct Foo
{
void bar(int) const { /* ... */ }
};
//later on
std::function<void(const Foo&, int)> fun = &Foo::bar;
這個工程下GCC 4.8.1,但無法在VS2013編譯如下錯誤:
error C2664: 'void std::_Func_class<_Ret,const Foo &,int>::_Set(std::_Func_base<_Ret,const Foo &,int> *)' :
cannot convert argument 1 from '_Myimpl *' to 'std::_Func_base<_Ret,const Foo &,int> *'
它看起來像我在VS中的錯誤,但也許我沒有看到什麼?有沒有一種方法來解決它(沒有像boost這樣的外部庫)?
編輯:我忘記了酒吧簽名中的「const」。但是這在VS中仍然不起作用。