您好 有没有办法在Visual C ++中使用匿名方法??
答案 0 :(得分:13)
Visual C ++ 2010支持C ++ 0x lambda表达式,(1)可以用作匿名函数:
int i = ([](int x) { return 40 + x; })(2); // i = 42
(1)更确切地说,Visual C ++ 2010支持C ++ 0x lambda表达式的草案规范之一;自Visual C ++ 2010发布以来,该规范草案已经进行了一些相对较小的修改。
答案 1 :(得分:2)
正如其他人所说,C ++ 0x将支持lambda。在此期间,您可以使用Boost Lambda。
答案 2 :(得分:2)
如果您不能像其他人所建议的那样使用C ++ 0x,那么您尝试做的事情有很多方法可以在某种程度上模仿,但不能完全捕捉到匿名方面:
template<typename T>
void foo(const T& _someFunctor, double _someArgument){
_someFunctor(_someArgument);
}
或者你可以有一个更好的定义结构:
int bar(const boost::function<int(double,double)>& _aFunction, double arg1, double arg2){
return _aFunction(arg1+2.0, arg2+2.0);
}
Boost::Function方法可能是最方便的,因为它定义了一个非常严格的函数接口,同时允许使用:
答案 3 :(得分:1)
我认为你的意思是C ++ / CLI,匿名方法是C#术语。不,不支持。它也不支持C ++ 0x lambdas。
答案 4 :(得分:0)
是的,C ++ 0x允许lambda函数。