Spécialisation des templates, syntaxe / possibilités
Bonjour,
J'essaie d'utiliser les templates en C++. Aujourd'hui, je pensais faire un Vector (dans le sens, vertex, mais dans un système de coordonnées N). Je pensais faire des spécialisations de template, pour N = 3 et N = 4.
Mais finalement, cela m'a forcé à copier / coller les fonctions de vector<T,N> pour les avoir dans le vector<T,3>. Ok, j'ai compris ma première erreur en lisant la FAQ -> http://cpp.developpez.com/faq/cpp/?p...specialisation
Citation:
La spécialisation de classe est elle plus contraignante car il faut redéfinir la totalité de celle-ci.
Du coup, je fais du copier-coller. Ce n'est pas génial.
J'imagine que j'ai donc pris une mauvaise direction. Notamment car il se peut que je n'aurais jamais besoin de mon vector<T,N>
Bref, toujours est il, que j'aimerais connaitre la syntaxe qu'il faut utiliser dans le cas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
// Vector de base
template <typename T, unsigned int N>
struct Vector
{
// Mon code
}
// Ma spécialisation:
template <typename T>
struct Vector3<T,3> // Erreur de compilation ici
{
} |
Est ce possible de l'écrire, ou alors, je fait vraiment n'importe quoi?