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
std::string make_string()
{
	return "abc";
}
 
int make_int()
{
	return 5;
}
 
int main()
{
	make_string() = "xyz";
	make_int() = 8; // error C2106: '=': left operand must be l-value
	return 0;
}
Assez curieusement, modifier un std::string à "droite" est permis mais pas un int.
Il y a certainement une bonne raison dans l'apparente incohérence dans ce traitement permissif dans le cas du std::string (et de toute autre classe d'ailleurs) mais pas des types primitifs.
Et je me demande bien laquelle.
(c'est vraiment pas important, c'est juste que je trouve ça curieux )