pb avec iterateur const sur une list STL
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 :
Code:
1 2
|
std::list< unsigned char > m_o_allowed_letters ; |
Puis j'ai une fonction membre constante qui vise simplement a retourner si une lettre se retrouve dans ma liste :
Code:
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 ;
} |
Et j'ai une erreur super bizarre renvoyée par CL :
Citation:
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
]
J'ai inclu <list> mais qu'ai-je oublié ?
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 !