SORU
8 NİSAN 2014, Salı


Mu &; [ bu ] " ne" C yani

Cocos2dx 3.0 API okurken, şöyle bir şey buldum:

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

[this] ne anlama geliyor? Bu C 11 Yeni sözdizimi.

CEVAP
8 NİSAN 2014, Salı


[Bu] ne demek?

lambda - çağrı işlevi bir nesne sunar. Parantez içinde this koymak lambda anlamına geliryakalarthis, bu nesnenin bu üyeler içinde kullanılabilir. Lambda bağlı sayfanın açıklandığı gibi yerel değişkenler, değer ya da referans ile yakalayın.

Lambda operator(), çağrılabilir, böylece bir fonksiyon gibi aşırı yüklenme vardır:

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

kod lambda gövdesi içinde tanımlanan çalışacak.

Bu C 11 yeni bir sözdizimi.

Evet.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006

İLGİLİ SORU / CEVAPLAR