SORU
26 AĞUSTOS 2010, PERŞEMBE


Lambda fonksiyonları şablon olabilir mi?

C 11 bir şablon için bir lambda fonksiyonu? Ya da doğuştan şablon için çok özeldir?

Klasik şablon sınıf/a functor yerine tanımlayabilirim bunu anlıyorum, ama soru daha: dil lambda fonksiyonları şablon izin veriyor mu?

CEVAP
26 AĞUSTOS 2010, PERŞEMBE


GÜNCELLEŞTİRME 2014: C 14 Bu yıl serbest bırakıldı ve şimdi bu örnekte daha aynı sözdizimi ile Polimorfik Lambda bulunur. Bazı büyük Derleyiciler zaten bunu uygular.


Duruyor (C 11), ne yazık ki Hayır. Polimorfik Lambda esneklik ve güç açısından mükemmel olurdu.

Yukarı monomorphic olarak sona erdi orijinal nedeni kavramlar yüzünden oldu. Kavramlar bu kod durumu zorlaştırdı:

template <Constraint T>
void foo(T x)
{
    auto bar = [](auto x){}; // imaginary syntax
}

Kısıtlı bir şablon sadece diğer kısıtlı şablonları arayabilirsiniz. (Aksi takdirde kısıtlamaları kontrol olamazdı.) foo bar(x) çağırabilirsiniz? Kısıtlamaları lambda (Bu parametre sadece bir şablon, tüm sonra) nedir?

Kavramları bu tür bir şey mücadele için hazır değildik; ** 4 kavramı çağrılan kadar işaretli değildi) falan gibi daha fazla şeyler gerektirir. Daha basitti hepsini bırak ve monomorphic Lambda sopa.

Ancak, C 0, polimorfik Lambda kavramlarının kaldırılması ile daha basit bir önerme haline gelir. Ancak, bunun için herhangi bir öneri bulamıyorum. :(

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006