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 :
Je comprend à peu près ce qu'il me dit mais pas comment régler le problème .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
]
( 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_ ;
Partager