Bonjour.

j'ai une fonction menbre d'une classe dont le but est juste de renvoyé une string contenu dans une map ( en passant en paramètre a la fonction une clé de la map ).

J'ai voulu rendre cette fonction const, car elle ne modifie pas ma classe.

J'ai une erreur de compilation :
C2678: '[' binaire*: aucun opérateur trouvé qui accepte un opérande de partie gauche de type 'const std::map<_Kty,_Ty>' (ou il n'existe pas de conversion acceptable)
with
[
_Kty=std::string,
_Ty=std::string
]
Je comprend à peu près ce qu'il me dit mais pas comment régler le problème .
( c'est le dernier return qui plante, avec l'opérateur [] )

Voila ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
std::string Settings::GetSettingByName(const std::string & SettingToGet) const
{ 
	std::map <std::string, std::string>::const_iterator It = Settings_.find(SettingToGet);
 
	if ( It == Settings_.end() )
	{
		Log(LOG_ALL,LOG_ERROR) << " Setting : " << SettingToGet << " not found in the SettingManager." ;
 
		return "" ;
	}
 
	return Settings_[SettingToGet] ;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
// Our map of Setting <-> Value
std::map <std::string, std::string> Settings_ ;