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
J'obtiens les message ci-dessous de la part du compilateur à ligne de "map<int,pair<char*,int*>> test;" :
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; }
Alors que si j'utilise un bon vieux typedef tout passe :error C2146: syntax error : missing ',' before identifier 'test'
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 ;-)
Partager