Bonjour, j'ai le code suivant :

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
20
21
22
23
24
 
#include <vector>
 
/* ident des mots-cles */
typedef enum
{
  KWDINITVALUE, /* valeur pour initialiser un tableau de IdentKwd               */
  KWDOK,        /* valeur pour specifier si un mot-cle a ete selectionne ou non */
  INFOOPERATEURDEBUT,
  INFOOPERATEURFIN,
  NC_CONFIG,
  NC_TITRE,
  NC_NCABLES,
 
  NB_KWD /* laisser cette valeur a la fin pour compter le nombre de mots-cles de l'enumeration !! */
} IdentKwd;
 
using namespace std;
 
int main()
{
  vector<IdentKwd> kwdOK(NB_KWD,KWDINITVALUE);
  return 0;
}
et visual 2005 me renvoie l'erreur suivante lors de la compilation :

1>Compiling...
1>main.cpp
1>c:\program files\microsoft visual studio 8\vc\include\xutility(610) : error C2838: 'iterator_category' : illegal qualified name in member declaration
1> c:\program files\microsoft visual studio 8\vc\include\vector(501) : see reference to class template instantiation 'std::iterator_traits<_Iter>' being compiled
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> d:\documents and settings\f284272\desktop\test\main.cpp(21) : see reference to function template instantiation 'std::vector<_Ty>::vector<IdentKwd>(_Iter,_Iter)' being compiled
1> with
1> [
1> _Ty=IdentKwd,
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(610) : error C2146: syntax error : missing ';' before identifier 'iterator_category'
1>c:\program files\microsoft visual studio 8\vc\include\xutility(610) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\include\xutility(610) : error C2602: 'std::iterator_traits<_Iter>::iterator_category' is not a member of a base class of 'std::iterator_traits<_Iter>'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\xutility(610) : see declaration of 'std::iterator_traits<_Iter>::iterator_category'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(610) : error C2868: 'std::iterator_traits<_Iter>::iterator_category' : illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(611) : error C2838: 'value_type' : illegal qualified name in member declaration
1>c:\program files\microsoft visual studio 8\vc\include\xutility(611) : error C2146: syntax error : missing ';' before identifier 'value_type'
1>c:\program files\microsoft visual studio 8\vc\include\xutility(611) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\include\xutility(611) : error C2602: 'std::iterator_traits<_Iter>::value_type' is not a member of a base class of 'std::iterator_traits<_Iter>'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\xutility(611) : see declaration of 'std::iterator_traits<_Iter>::value_type'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(611) : error C2868: 'std::iterator_traits<_Iter>::value_type' : illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(612) : error C2838: 'difference_type' : illegal qualified name in member declaration
1>c:\program files\microsoft visual studio 8\vc\include\xutility(612) : error C2146: syntax error : missing ';' before identifier 'difference_type'
1>c:\program files\microsoft visual studio 8\vc\include\xutility(612) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\include\xutility(612) : error C2602: 'std::iterator_traits<_Iter>::difference_type' is not a member of a base class of 'std::iterator_traits<_Iter>'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\xutility(612) : see declaration of 'std::iterator_traits<_Iter>::difference_type'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(612) : error C2868: 'std::iterator_traits<_Iter>::difference_type' : illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(614) : error C2838: 'pointer' : illegal qualified name in member declaration
1>c:\program files\microsoft visual studio 8\vc\include\xutility(614) : error C2146: syntax error : missing ';' before identifier 'pointer'
1>c:\program files\microsoft visual studio 8\vc\include\xutility(614) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\include\xutility(614) : error C2602: 'std::iterator_traits<_Iter>::pointer' is not a member of a base class of 'std::iterator_traits<_Iter>'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\xutility(614) : see declaration of 'std::iterator_traits<_Iter>::pointer'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(614) : error C2868: 'std::iterator_traits<_Iter>::pointer' : illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(615) : error C2838: 'reference' : illegal qualified name in member declaration
1>c:\program files\microsoft visual studio 8\vc\include\xutility(615) : error C2146: syntax error : missing ';' before identifier 'reference'
1>c:\program files\microsoft visual studio 8\vc\include\xutility(615) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\include\xutility(615) : error C2602: 'std::iterator_traits<_Iter>::reference' is not a member of a base class of 'std::iterator_traits<_Iter>'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\xutility(615) : see declaration of 'std::iterator_traits<_Iter>::reference'
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\xutility(615) : error C2868: 'std::iterator_traits<_Iter>::reference' : illegal syntax for using-declaration; expected qualified-name
1> with
1> [
1> _Iter=IdentKwd
1> ]
1>c:\program files\microsoft visual studio 8\vc\include\vector(501) : error C2664: 'void std::vector<_Ty>::_Construct<_Iter>(_Iter,_Iter,std::_Int_iterator_tag)' : cannot convert parameter 3 from 'int' to 'std::_Int_iterator_tag'
1> with
1> [
1> _Ty=IdentKwd,
1> _Iter=IdentKwd
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous
une recherche sur le net du code erreur C2838 ne m'aide pas bcp. Avez-vous une idée pour corriger mon problème ?

Merci d'avance