Bonjour à tous,
Je me retrouve une nouvelle fois face à un code contenant des fonctions retournant des chaînes de caractères. Malheureusement (pour moi et surtout pour les performances) celles-ci sont retournées par copie. Un des soucis qui m'empêche de retourner une référence est le fait qu'il existe des cas où ces fonctions peuvent retourner des chaînes vides : return "";.
Quelles solutions avez-vous pour éviter des copies ?
Mes solutions :
- passer la chaîne de caractère par référence en argument à la fonction. Point noir : modification lourde du code existant ;
- utiliser une chaîne vide statique, qui ne sera pas détruite, même lorsque retournée par la fonction.
Exemple de code problématique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 std::string myFct() { if (test) return member; return ""; }
Partager