Bonjour,
voici ma définition de patron générique :
Ce patron compile bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template <class Type, int size> int count( Type ( &array )[ size ], Type value ) { int count_value = 0; for( int i = 0; i < size; ++i ) if( array[ i ] == value ) ++ count_value; return count_value; }
Je souhaiterais réaliser aussi une spécialisation explicite de ce patron pour le
paramètre de patron Type : const char * .
Voici ce que j'écris dessous :
Malheureusement quand je compile, j'ai deux erreurs pour le patron
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef const char *PCC; template<> int count< PCC , int size >( PCC ( &array )[ size ], PCC value ) { int count_value = 0; for( int i = 0; i < size; ++i ) if( strcmp( array[ i ], value ) == 0 ) ++ count_value; return count_value; }
spécialisé.
-> syntax error : missing ',' before identifier 'size'
-> 'size' : undeclared identifier
Cela concerne la ligne :
Je n'arrive donc pas à écrire convenablement une spécialisation explicite de
Code : Sélectionner tout - Visualiser dans une fenêtre à part template<> int count< PCC , int size >( PCC ( &array )[ size ], PCC value )
patron de fonction contenant des paramètres de patron non-typé :
ici 'int size' .
Je n'ai pas trouvé de réponse sur internet . Quelqu'un sait-il comment faire ?
Merci d'avance.
Partager