Bonjour, j'ai une petite question technique, je ne comprends absolument pas ce que me fait mon compilo ! (CL de Visual C++ 2005).
J'ai une classe qui contient un membre :
Puis j'ai une fonction membre constante qui vise simplement a retourner si une lettre se retrouve dans ma liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::list< unsigned char > m_o_allowed_letters ;
Et j'ai une erreur super bizarre renvoyée par CL :
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 bool TSquare::Is_Allowed_Letters( unsigned char par_uc_letter ) const { if ( *m_o_allowed_letters.begin() == ALLOW_ALL_LETTERS ) { return true ; } for ( std::list<unsigned char>::const_iterator loc_o_iterator = m_o_allowed_letters.begin() ; loc_o_iterator != m_o_allowed_letters.end() ; loc_o_iterator++ ) { if ( *loc_o_iterator == par_uc_letter ) { return true ; } } return false ; }
J'ai inclu <list> mais qu'ai-je oublié ?d:\programmation\visual studio 8\vc\include\xutility(572) : error C2039: 'iterator_category' : n'est pas membre de 'std::list<_Ty>'
with
[
_Ty=unsigned char
]
Je ne peux pas faire d'iterateur constant sur une liste ? La STL me certifie que si !!
Je tiens à préciser que d'un autre coté si je n'utilise pas d'iterateur constant cela me créer d'autres erreurs puisque ma fonction est constante. De plus conceptuellement comme je ne modifie pas les données de ma liste je n'ai aucune raison de ne pas prendre un itérateur constant.
Merci pour votre aide !
Partager