A legjobb bevezetés a C ++ template metaprogramozás?

szavazat
107

Statikus metaprogramozás (más néven „sablon metaprogramozás”) egy nagy C ++ technika, amely lehetővé teszi a programok végrehajtását fordításkor. Egy villanykörte elment a fejemben, amint olvastam ezt a kanonikus metaprogramozás példa:

#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;
}

Ha valaki meg akarja többet megtudni C ++ statikus metaprogramozás, hogy mi a legjobb források (könyvek, weboldalak, on-line tananyag, bármi)?

A kérdést 21/09/2008 20:50
a forrás felhasználó
Más nyelveken...                            


8 válasz

szavazat
4

google Alexandrescu, Modern C ++ Design: Generic Programozás és Design Patterns Alkalmazott

Válaszolt 21/09/2008 20:53
a forrás felhasználó

szavazat
5

Modern C ++ az egyik legjobb bemutatkozás olvastam. Ez magában foglalja a tényleges hasznos példákat sablon metaprogramozás. Szintén megnézzük a társa könyvtár Loki .

Válaszolt 21/09/2008 20:54
a forrás felhasználó

szavazat
23

Andrei Alexandrescu meghatározása a Modern C ++ design borító sok ilyen és ehhez hasonló trükkök gyors és hatékony, modern C ++ kódot, és az alapja a Loki könyvtárban.

Szintén érdemes megemlíteni, a kiemelés könyvtárak, amelyek erősen használja ezeket a technikákat, és általában nagyon jó minőségű tanulni (bár némelyik elég sűrű).

Válaszolt 21/09/2008 20:56
a forrás felhasználó

szavazat
4

Veldhuizen eredeti papírok jó volt. Ha fel egy egész könyvet, akkor ott van Vandevoorde könyve „C ++ sablonok Complete Guide”. És amikor készen áll a mester természetesen próbálja Alexandrescu Modern C ++ Design.

Válaszolt 21/09/2008 20:56
a forrás felhasználó

szavazat
12

Modern C ++ design , kitűnő könyvében és tervezési minta keret Alexandrescu. A figyelmeztető szót, miután elolvasta ezt a könyvet abbahagyta C ++, és gondoltam: „Mi a fene, én is csak felvenni a jobb nyelvi és kap ingyen”.

Válaszolt 21/09/2008 20:56
a forrás felhasználó

szavazat
6

Két jó könyveket, amelyek eszünkbe közül

  • Modern C ++ Design / Andrei Alexandrescu (Ez valójában 7 éves név ellenére!)
  • C ++ sablonok: The Complete Guide / Vandevoorde & Josuttis

Elég egy alapos területén, így egy jó könyvet, mint egy ilyen határozottan ajánlott felett weboldalak. Néhány fejlettebb technikák lesz akkor tanulmányozza a kódot egy ideje, hogy kitaláljuk, hogyan működnek!

Válaszolt 21/09/2008 20:59
a forrás felhasználó

szavazat
102

[Megválaszolása Saját kérdés]

A legjobb bemutatkozás, amit találtam eddig 10. fejezet, „Static metaprogramozás C ++” származó generatív programozás, módszerek, eszközök és alkalmazások Krzysztof Czarnecki és Ulrich W. Eisenecker, ISBN-13: 9780201309775; és 17. fejezet, "metaprogramok" A C ++ sablonok: The Complete Guide David Vandevoorder és Nicolai M. Josuttis, ISBN-13: 9780201734843.

alt szöveg http://ak.buy.com/db_assets/prod_images/941/30676941.jpg alt szöveg http://ak.buy.com/db_assets/prod_images/235/31025235.jpg alt szöveg http: // ak. buy.com/db_assets/prod_images/704/30680704.jpg alt szöveg http://ak.buy.com/db_assets/prod_images/218/39856218.jpg

Todd Veldhuizen kiváló bemutató itt .

Egy jó forrás C ++ programozási általában Modern C ++ design Andrei Alexandrescu, ISBN-13: 9780201704310. Ez a könyv ötvözi egy kicsit metaprogramozás más sablon technikával. Mert metaprogramozás különösen lásd 2.1 „fordítási időben állítások”, 2,4 „Mapping Integrál állandók típusai”, 2.6 „típus kiválasztása”, 2.7 „észlelése Convertibility és öröklődés fordításkor”, 2.9 „ NullTypeés EmptyType” 2,10 „típusú Személyiségjegyek ”.

A legjobb köztes / haladó erőforrás, amit találtam C ++ Template metaprogramozás David Abrahams és Aleksey Gurtovoy, ISBN-13: 9780321227256

Ha inkább csak egy könyvet, hogy a C ++ sablonok: The Complete Guide hiszen ez is a végleges referencia sablonok általában.

Válaszolt 21/09/2008 20:59
a forrás felhasználó

szavazat
5

Nem lesz nagy könyvek listáját, a lista az emberek egy csomó tapasztalat korlátozott. Sablon metaprogramozás kezdődött az igazi körül az első C ++ Template programozás Műhely 2000-ben, és a szerzők legtöbbje nevű eddig is részt vett. (IIRC, Andrei nem.) Ezek az úttörők nagyban befolyásolja a területen, és tulajdonképpen mi kell írni most írva. Én személy szerint még tanácsot Vandevoorde & Josuttis. Alexandrescu kór egy kemény könyv, ha új a területen.

Válaszolt 21/09/2008 21:40
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more