Je suis en train de me demander si ce genre de choses est une bonne idée niveau performances…
std::string f() {
std::string text("coucou");
return text;
}
Va-t-il y avoir copie de la chaîne ? Ou le compilo est-il généralement assez futé que pour bien optimiser ça ? Je sais ce que vous allez me dire : “sors-toi les doigts du fion, compile ton code, lance en debug et lis l’assembleur”, mais ça risque de me prendre un temps dingue, vu mes connaissances assez légères en asm x86.
Et surtout, imaginez une longue succesion d’appels du genre :
[code]std::string g() {
return f();
}
std::string h() {
return g();
}[/code]
Si il y a copie à chaque fois, ça va finir par faire lourd. Alors, quid ?
edit : bien sûr, dans mon exemple “coucou” est tout ce qu’il y a de plus statique, y’a moyen de faire ça bien plus intelligemment… Le cas qui m’intéresse, c’est celui où la chaîne renvoyée peut être différente pour chaque instance de la classe.
Et aussi, pensez-vous qu’ajouter des “const” puisse aider ? A première vue, je dirais que oui, mais ça mérite réflexion.