SORU
18 Ocak 2011, Salı


Döndüren fonksiyonlar

Mümkünse C 11 lambda fonksiyonu döndüren bir fonksiyon yazmak için mi acaba. Tabii ki tek sorun bu işlevi bildirin. Her lamda bir tür vardır, ama bu tip C olarak ifade edilebilir . Bunun işe yarayacağını sanmıyorum:

auto retFun() -> decltype ([](int x) -> int)
{
    return [](int x) { return x; }
}

Ne bu:

int(int) retFun();

Söyle, fonksiyonlar, ya da onun gibi bir işaretçiler için Lambda herhangi bir otomatik dönüşüm farkında değilim. Tek çözüm fonksiyonu bir nesne handcrafting ve dönüyor mu?

CEVAP
18 Ocak 2011, Salı


El yapımı bir işlev nesnesi gerek yok, sadece hangi lambda fonksiyonları çevrilemez std::function, kullanın:

std::function<int (int)> retFun() {
    return [](int x) { return x; };
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • Skrillex

    Skrillex

    6 NİSAN 2010
  • theatre2film

    theatre2film

    12 NİSAN 2006