Problème de fonction "const" avec une std::map
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 :
Citation:
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:
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:
1 2 3
|
// Our map of Setting <-> Value
std::map <std::string, std::string> Settings_ ; |