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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 ;
}
Et j'ai une erreur super bizarre renvoyée par CL :

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 !