我想使用 lambda 函数,但我有一个问题:
如果我想将在“全局范围”中声明的函数的引用存储为 std::function,则没有问题:
int myFunction()
{
return 665;
}
int main()
{
function<int()> functionRef = myFunction; //This works
}
如果我想做同样的事情但存储对方法的引用:
//A class
class myClass
{
public:
int myMethod()
{
return 666;
}
};
//I create an instance:
myClass myInstance;
int main()
{
function<int()> functionRef2 = myInstance.myMethod; //This doesn't work... why?
}
给我这个错误:
错误 C3867:“myClass::myMethod”:函数调用缺少参数列表;使用 '&myClass::myMethod' 创建指向成员的指针
我知道当您调用没有“()”的函数时会发生错误,但在这种情况下我没有调用函数。只需将其存储在变量中。我正在使用 Visual C++ 2010。感谢您的帮助。