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

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Techmoan

    Techmoan

    31 Mayıs 2009