SORU
21 EYLÜL 2008, Pazar


C metaprogramming şablonu için en iyi giriş?

("Template metaprogramming") derleme zamanı sırasında programların yürütülmesini sağlayan büyük C bir tekniktir. aka statik metaprogramming Bir ampul kafamda bu kurallı metaprogramming örnek okur okumaz gitti:

#include <iostream>
using namespace std;

template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };

template<>
struct factorial< 0 > { enum { ret = 1 }; };

int main() {
    cout << "7! = " << factorial< 7 >::ret << endl; // 5040
    return 0;
}

Eğer bir daha C statik metaprogramming öğrenmek istiyorsa, en iyi kaynakları (kitaplar, web siteleri, on-line, ne olursa olsun bir ders) nedir?

CEVAP
21 EYLÜL 2008, Pazar


[Kendi soruma cevap]

Şimdiye kadar bulduğum en iyi tanıtımları Bölüm 10, "C Statik Metaprogramming"Üretken Programlama, Yöntem, araç ve Uygulamalartarafından Krzysztof Czarnecki ve Ulrich W. Eisenecker,-13 ISBN: 9780201309775; bölüm 17, "Metaprograms"C Şablonları: Tam KılavuzuDavid ve Nicolai M. Josuttis Vandevoorder, ISBN-13: 9780201734843.

alt text alt text alt text alt text

Todd Veldhuizen 4* *mükemmel bir öğretici vardır.

Genel olarak C programlama için iyi bir kaynaktırC Modern TasarımAndrei Alexandrescu, ISBN-13: 9780201704310. Bu kitap diğer şablon teknikleri ile metaprogramming biraz karıştırır. Metaprogramming için özellikle Bakınız bölüm 2.1 "Derleme Zamanı İddialar", 2.4 "Eşleme İntegral Sabitleri Türleri", 2.6 "Tür Seçimi", 2.7 "Tespit karşılığının olduğu ilan ve Miras Derleme zamanında", 2.9 "NullType EmptyType" ve 2.10 "Tip Özellikleri".

BuldumC Metaprogramming ŞablonDavid Abrahams ve Aleksey Gurtovoy,-13 ISBN: 9780321227256

Eğer sadece bir kitap tercih ediyorsanız, alınC Şablonları: Tam Kılavuzuayrıca genel şablonlar için kesin referans olduğu için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • macpulenta

    macpulenta

    9 EYLÜL 2006
  • Pepsi

    Pepsi

    1 Kasım 2005
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010