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

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014