Assez curieusement, modifier un std::string à "droite" est permis mais pas un int.
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; }
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)







Répondre avec citation
Partager