對於一個類,我想在一個map
存儲std::function
對象中存儲一些指向同一類的成員函數的函數指針。但是,我不就在與此代碼開頭:在一個類中使用具有成員函數的泛型std :: function對象
class Foo {
public:
void doSomething() {}
void bindFunction() {
// ERROR
std::function<void(void)> f = &Foo::doSomething;
}
};
我收到xxcallobj
有一些奇怪的模板實例化的錯誤結合error C2064: term does not evaluate to a function taking 0 arguments
。目前我正在使用Visual Studio 2010/2011在Windows 8上工作,在使用VS10的Win 7上工作也會失敗。該錯誤必須基於我不遵循的一些奇怪的C++規則。
編輯:我做不是使用助推。這是集成在MS編譯器中的C++ 11。
正確的答案是使用MSVC2013不支持的'std :: invoke'。這個問題有點過時了。 – Mikhail