[英]Visual C++ - anonymous methods
嗨有沒有辦法在Visual C ++中使用匿名方法?
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發布以來,對該規范草案進行了一些相對較小的更改。
正如其他人所說,C ++ 0x將支持lambda。 在此期間,您可以使用Boost Lambda 。
如果您不能像其他人所建議的那樣使用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方法可能是最方便的,因為它定義了一個非常嚴格的函數接口,同時允許使用:
我假設你的意思是C ++ / CLI,匿名方法是C#術語。 不,不支持。 它也不支持C ++ 0x lambdas。
是的,C ++ 0x允許lambda函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.