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

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • Dion Coulls

    Dion Coulls

    16 AĞUSTOS 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006