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 : 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
 
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;" :

error C2146: syntax error : missing ',' before identifier 'test'
Alors que si j'utilise un bon vieux typedef tout passe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ;-)