Lambda fonksiyonları şablon olabilir mi? | Netgez.com
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

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • VideoGamePervert

    VideoGamePer

    30 AÄžUSTOS 2008