(Re)Bonjour,
J'ai des petits soucis concernant les templates... de templates. Pour faire simple, j'ai une classe Vector< TYPE_UTILISE, NB_DIMENSION > que je dois passer en template de classe dans une autre structure AutreStruct< class C, [...]>. Je voudrais reconnaitre alors la structure Vector de deux manières : quelque soient TYPE_UTILISE et NB_DIMENSION et, ensuite, quelque soit NB_DIMENSION en sachant que tout cela se passe au niveau d'une fonction...
Pour éclaircir :
Erreur retournée par GCC :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 template<typename TYPE, int DIMENSION> struct Vector { typedef TYPE* iterator; //blabla... }; template< class C1, class C2> struct AutreStruct { //blabla }; //Le problème est ici : //La fonction de base template< class T, class U> AutreStruct< T, U> MaFonction( const T &t, const U &u) { //blabla } //La spécialisation qui ne fonctionne pas //C'est le premier cas qui m'intéresse ici, puisque la fonction ne doit juste //reconnaitre que le type Vector et peu importe le nombre de dimensions //ou le type utilisé template<class U> template<typename TYPE, int DIMENSION> AutreStruct< Vector<TYPE, DIMENSION>::iterator , U> MaFonction( const T &t, const U &u) { //blabla }
Merci de votre aide.error: type/value mismatch at argument 1 in template parameter list for `[...]'
Partager