如果我写这个
std::function<int()> myFunction = []() {return 42;};
在VS2010下的C ++ / CLI中(在MSTest单元测试类中,如果重要),我得到编译器错误C3809:a managed type cannot have any friend functions/classes/interfaces
。
lambda被认为是朋友,因为它可以访问局部变量,即使它没有?
另一方面,这很好用:
int ThatOldJokeAgain()
{
return 42;
}
[...]
std::function<int()> myFunction2 = ThatOldJokeAgain;
有没有办法让lambdas在C ++ / CLI中运行?或者我的错误是完全不同的?