Bonjour,
(et déjà merci d'avoir survécu au titre )

le code suivant échoue à la compilation sous VS 2005 avec l'erreur C3201: la liste des paramètres de modèle pour la classe de modèle 'TSomeClass' ne correspond pas à celle du paramètre de modèle 'AClass'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
template<typename T, typename T::type I>
class TSomeClass
{};
 
template
< template<typename T, typename T::type I> class AClass
>
class TTest
{};
 
TTest<TSomeClass> t;
le code suivant compile bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
template<typename T, T I>
class TSomeClass
{};
 
template
< template<typename T, T I> class AClass
>
class TTest
{};
 
TTest<TSomeClass> t;
Est-ce un problème du compilateur ou un code effectivement invalide ?
J'ai des doutes sur l'écriture template<typename T, typename T::type I>, bien qu'elle compile indépendamment (et je n'ai pour l'instant rien vu dans la norme qui la permette\l'interdise).

Merci.