tipos sintaxis programa funciones ejemplos datos comandos codigos c++ api c++11 syntax cocos2d-x

programa - sintaxis de c++



Qué significa "[esto]" en C++ (1)

¿Qué significa esto?

Introduce un lambda - un objeto de función invocable. Poner this entre corchetes significa que el lambda captura this , por lo que los miembros de este objeto están disponibles dentro de él. Lambdas también puede capturar variables locales, por valor o referencia, como se describe en la página vinculada.

La lambda tiene una sobrecarga de operator() , por lo que se puede llamar como una función:

Event * event = some_event(); listener(event);

que ejecutará el código definido en el cuerpo de la lambda.

¿Es esta nueva sintaxis en C ++ 11?

Sí.

Cuando estaba leyendo la API de Cocos2dx 3.0 , encontré algo como esto:

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); } };

¿Qué significa [this] ? ¿Es esta nueva sintaxis en C++11 ?