C ++中的“”是什么意思?
当我阅读Cocos2dx 3.0
API时,发现如下所示:
auto listener = [this](Event* event){ auto keyboardEvent = static_cast<EventKeyboard*>(event); if (keyboardEvent->_isPressed) { if (onKeyPressed != nullptr) onKeyPressed(keyboardEvent->_keyCode, event); } else { if (onKeyReleased != nullptr) onKeyReleased(keyboardEvent->_keyCode, event); } };
这是什么意思? 这是C++11
新语法吗?
这是什么意思?
它引入了一个lambda – 一个可调用的函数对象。 把this
放在括号里意味着lambda 捕获 this
,所以这个对象的成员在它里面是可用的。 Lambdas还可以通过值或引用捕获本地variables,如链接页面中所述。
lambda具有operator()
的重载,所以它可以像函数一样被调用:
Event * event = some_event(); listener(event);
它将运行lambda主体中定义的代码。
这是C ++ 11中的新语法吗?
是。