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

  • brokenbellsVEVO

    brokenbellsV

    11 EYLÜL 2009
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • UberFacts

    UberFacts

    26 EKİM 2013