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

  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • stokelycalm

    stokelycalm

    28 Aralık 2010
  • Study with Substance P

    Study with S

    31 Mayıs 2008