如何修复下面的代码以存储 lambda 以便稍后调用它?
我目前得到的错误是field 'm_callback' has incomplete type。
class Foo
{
public:
Foo() { }
~Foo() { }
template< typename FuncT >
void setCallback( FuncT&& callback )
{
m_callback = callback;
}
private:
auto m_callback; // this line is broken
};
int main(int argc, char** argv)
{
Foo foo;
foo.setCallback( [] (int x){ return true; } );
return 0;
}
最佳答案
不能像那样使用auto
关键字。我建议使用这样的东西:
#include <functional>
std::function<bool (int)> m_callback;
这是从 Visual Studio 2010 完成的。
关于c++ - 如何保存 lambda 以供以后回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046397/