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

  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006

İLGİLİ SORU / CEVAPLAR