Définition de template imbriqué avec stlport
Bonjour à tous,
Je viens vers vous, car, je n'arrive pas à trouver la solution à mon problème.
Pour info, je développe en C++ avec Visual 6.0 (ne riez pas je suis obligé :-)) et j'utilise la STLPort (version 4.1.2 donc pas la dernière, je sais).
Donc voici le problème : je n'arrive pas à compiler le code ci-dessous
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int main(void){
map<int,pair<char*,int*>> test;
char a = 0;
int b = 2;
pair<char*,int*> pair;
pair.first = &a;
pair.second = &b;
test.insert(map<int,pairDef>::value_type(15645,pair));
return 0;
} |
J'obtiens les message ci-dessous de la part du compilateur à ligne de "map<int,pair<char*,int*>> test;" :
Citation:
error C2146: syntax error : missing ',' before identifier 'test'
Alors que si j'utilise un bon vieux typedef tout passe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
int main(void){
typedef pair<char*,int*> pairDef;
map<int,pairDef> test;
char a = 0;
int b = 2;
pair<char*,int*> pair;
pair.first = &a;
pair.second = &b;
test.insert(map<int,pairDef>::value_type(15645,pair));
return 0;
} |
Comment faire pour compiler la première version du code, car, en vrais j'utilise ce code dans un .h et je ne veux pas déclarer de typedef dans ce .h ?
Merci d'avance pour ceux qui dédaigneront m'accorder quelques secondes ou minutes de leur temps précieux ;-)