Aar*_*Lee 0 c++ lambda cocos2d-x c++11
我遇到了这个函数的麻烦,我不知道它的含义是什么:
menuItem1->setCallback([&](cocos2d::Ref *sender)
Run Code Online (Sandbox Code Playgroud)
输入函数,参数是ccMenuCallback&:
/** set the callback to the menu item
* @code
* In js,can contain two params,the second param is jsptr
* @endcode
* @lua NA
*/
void setCallback(const ccMenuCallback& callback);
Run Code Online (Sandbox Code Playgroud)
和
typedef std::function<void(Ref*)> ccMenuCallback;
Run Code Online (Sandbox Code Playgroud)
这是一个C++ 11 lambda.
基本上setCallback
接受作为参数的a std::function
a cocos2d::Ref*
和a 返回void
.这是一种能够保持可调用功能的类型.
lambda是一个匿名函数,在这种情况下存储在std::function<void(cocos2d::Ref*)>
变量中并传递给函数.
确实是这样的:
auto lambda = [&](cocos2d::Ref* sender) {
/* implementation */
};
// ^ store the anonymous function in a variable
menuItem1->setCallBack(lambda);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
834 次 |
最近记录: |