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

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012