Comment fonctionne l'opérateur virgule en C ++?
Par exemple, si je fais:
a = b, c;  Est-ce que a finit par égaler b ou c?
(Oui, je sais que c'est facile à tester - il suffit de documenter ici pour que quelqu'un trouve la réponse rapidement.)
Mise à jour: Cette question a révélé une nuance lors de l'utilisation de l'opérateur virgule. Juste pour documenter ceci:
a = b, c;    // a is set to the value of b!
a = (b, c);  // a is set to the value of c!Cette question a en fait été inspirée par une faute de frappe dans le code. Ce qui était censé être
a = b;
c = d;Transformé en
a = b,    //  <-  Note comma typo!
c = d;a = (b, c);.
                a = b, c = d;réellement comme prévu a = b; c = d;?
                bet dsont des évaluations de fonctions qui utilisent (et modifient) un état commun, l'ordre d'exécution n'est défini que C++17.