[c++ std11] Besoin de copier une valeur dans une variable référence
Salutations !!
Ca fait depuis 2006 que j'ai plus touché au C++ et là je voudrais simplement faire en sorte de préfixer "./data/" à une variable déclarée const std::string& fname.
Faire ceci:
Code:
1 2
|
fname="./data/"+fname; |
ou même
Code:
1 2 3
|
std::string sPrefix="./data/";
fname=sPrefix+fname; |
ou
Code:
1 2 3
|
const std::string& sPrefix="./data/";
fname=sPrefix.append(fname); |
...apparemment ça ne va pas... pourtant l'opérateur+ a été surchargé en standard pour accepter un objet string& à droite du "+"...
Citation:
string (1)
string operator+ (const string& lhs, const string& rhs);
string operator+ (string&& lhs, string&& rhs);
string operator+ (string&& lhs, const string& rhs);
string operator+ (const string& lhs, string&& rhs);
c-string (2)
string operator+ (const string& lhs, const char* rhs);
string operator+ (string&& lhs, const char* rhs);
string operator+ (const char* lhs, const string& rhs);
string operator+ (const char* lhs, string&& rhs);
character (3)
string operator+ (const string& lhs, char rhs);
string operator+ (string&& lhs, char rhs);
string operator+ (char lhs, const string& rhs);
string operator+ (char lhs, string&& rhs);
Sources: http://www.cplusplus.com/reference/s...ing/operator+/
Je voudrais faire en sorte de ne pas devoir changer fname comme paramètre de toutes les fonctions qui l'utilisent, je veux juste préfixer fname dans la fonction.
J'y arrive pas... tout simplement, j'ai plus aucune notion de référence (&) à un objet, je suis plus à l'aise avec des pointeurs en mode C traditionnel.