template meta programming
-
Hallo,
ich hab so meine Probleme folgenden Code aus der Doku der boost MPL Library
zu verstehen:// permutation_holder<T>::type is an array type which can contain // all permutations of a given T. // unspecialized template for scalars template< typename T > struct permutation_holder { typedef T type[1][1]; }; // specialization for array types template< typename T, unsigned N > struct permutation_holder<T[N]> { typedef T type[factorial<N>::value][N]; };
factorial<N>::value berechnet die fakultät von N.. denke dass is hier nich weiter wichtig is halt ne konstante abhängig von N.
Also was ich kapiert hab is dass mir der compiler einen typ erzeugt.
Fürpermutation_holder<int>::type myvar;
zB eben
int[1][1] myvar;ist dass dann so gedacht, dass
permutation_holder<int[5]>::type myvar2;
..ein array der form
int myvar2[factorial<5>::value][5];erzeugt?
thx
-
ja, dass wird über die Template Spezialisierung erreicht.
-
oh. Dann war die Beitrag ja n bissl für die Katz'
dank dir..