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

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006
  • tinycammonitor

    tinycammonit

    14 Aralık 2010