Bah non, ça l'est pas.
Le compilo a besoin de savoir de quelle spécialisation tu lui parles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 template <typename T, bool> void totomachintruc<T, ???>::create()
C'est comme si tu définissais une fonction qui prend un int, que tu veux utiliser, mais sans le nommer. Ce n'est pas possible.
Edit: bon après tu peux spécialiser explicitement quand le bool est à true et à false. Dans ce cas là tu peux carrément te débarrasser du bool déclaré dans la liste de paramètres template.
Mais ce n'est pas une bonne pratique ; en effet à part les cas où tu spécialises en fonction d'un booléen (et donc là où il n'y a que deux cas possibles) il te faudra spécialiser dans le cas "autre chose que ce qui est prévu explicitement", le "cas par défaut" en somme. Dans ces cas là tu ne peux pas te passer du nom du paramètre template (par exemple, ici, impossible de ne pas nommer le typename "T").






Répondre avec citation


Partager