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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
fname="./data/"+fname;
ou même

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
std::string sPrefix="./data/";
fname=sPrefix+fname;
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 "+"...

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.