Kiedy czytałem Cocos2dx 3.0
API, znalazłem coś takiego:Co oznacza "[to]" oznacza w języku C++
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);
}
};
Co [this]
oznacza? Czy to nowa składnia w C++11
?
To lambda, a wiążąca jest do niej bieżąca instancja. – Zeta
Oznacza to, że przechwytujesz "to". – rightfold
Czy rzeczywiście istnieje wyraźny wzmiankę o "tym"? Czy nie zostanie automatycznie przechwycone przez odniesienie do 'onKeyPressed' i' onKeyReleased' (zakładając, że są członkami 'this'). Również ostrzeżenie "keyboardEvent" trzyma teraz kopię "tego" wskaźnika ... biada wam, jeśli "keyboardEvent" zdoła przeżyć to, co "to" wskazuje na .... (problemy ze standardowymi obiektami życia) –