Для одного класса я хочу сохранить некоторые указатели на функции-члены одного и того же класса в одном map
сохранении объектов std::function
. Но я не могу с самого начала с этим кодом:
class Foo {
public:
void doSomething() {}
void bindFunction() {
// ERROR
std::function<void(void)> f = &Foo::doSomething;
}
};
Я получаю error C2064: term does not evaluate to a function taking 0 arguments
в xxcallobj
в сочетании с некоторыми странными ошибками создания шаблона. В настоящее время я работаю над Windows 8 с Visual Studio 2010/2011, а на Win 7 с VS10 тоже не получается. Ошибка должна основываться на некоторых странных правилах С++, которые я не соблюдаю.
EDIT: я использую boost НЕ. Это С++ 11, встроенный в компилятор MS.