Bonjour,

Je tente de compiler sous gcc 3.4.6 le code suivant, contenant des typdef dans un template :

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
 
#include <map>
using namespace std;
 
template<class C>
struct S
{
        typedef map<int, C> MAP;
 
        MAP m_map;
 
        void s();
};
 
template<class C>
void S<C>::s()
{
        MAP::iterator it = m_map.begin();
}
Et je me retrouve avec le code d'erreur suivant à la compilation :

essai.cpp: In member function `void S<C>::s()':
essai.cpp:18: erreur: expected `;' avant « it »

Impossible de comprendre pourquoi il me refuse mon typedef. Quelqu'un aurait une idée ?