Bonjour,

Il y a une erreur dans une des entrées de la FAQ.

Lien : http://cpp.developpez.com/faq/cpp/?p...-a-ma-fonction

Voici un extrait :
Citation Envoyé par FAQ C++
Attention à ne pas oublier le const si le paramètre n'est pas modifié dans la fonction : cela permet en effet de passer ce
que l'on appelle des temporaires non nommés.

Code c++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <string> 
#include <vector> 
 
void FonctionIncorrecte(std::string& s) 
{ 
    // ... 
} 
 
void FonctionCorrecte(const std::string& s) 
{ 
    // ... 
} 
 
std::string s1 = "salut"; 
std::string s2 = "hello"; 
 
FonctionIncorrecte(s1); // Ok 
FonctionCorrecte(s1); // Ok 
 
FonctionIncorrecte(s1 + s2); // Erreur : s1 + s2 est un temporaire 
FonctionCorrecte(s1 + s2); // Ok 
 
FonctionIncorrecte("bonjour"); // Erreur : "bonjour" est un temporaire 
FonctionCorrecte("bonjour"); // Ok
Cette remarque vaut également pour les pointeurs :

Code c++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void FonctionIncorrecte(char* s) 
{ 
    // ... 
} 
 
void FonctionCorrecte(const char* s) 
{ 
    // ... 
} 
 
FonctionIncorrecte("bonjour"); // Erreur : "bonjour" est un temporaire 
FonctionCorrecte("bonjour"); // Ok
"bonjour" n'est pas un temporaire mais une constante littérale. Et, dans le dernier exemple, cela ne crée par d'objet temporaire de type std::string.
En outre, remplacer T* par const T* n'a rien à voir avec les objets temporaires.

Cela vient de dérouter un étudiant dans le fil suivant :
http://www.developpez.net/forums/d16...cpp-fonctions/

Je pense qu'il faut supprimer la fin de la réponse, à partir de "Cette remarque vaut également pour les pointeurs".