Avatar ·

Que signifie l'opérateur '-->' en C++ et pourquoi fonctionne-t-il ?

Bonjour à tous ! J'apprends le C++ et je suis tombé sur un code étrange sur Internet. Il y avait écrit quelque chose comme : ```cpp int x = 10; while (x --> 0) { printf("%d ", x); } ``` Et ce code fonctionne ! Il affiche les nombres de 9 à 0. J'ai d'abord pensé qu'il s'agissait d'un nouvel opérateur "flèche" (arrow operator) que j'aurais manqué dans le manuel. Mais ensuite, j'ai essayé d'écrire `x --> 0` sans espaces comme `x-->0` — ça fonctionne aussi. Par contre, `x->0` — non, cela donne une erreur de compilation. J'ai consulté la documentation du C++ et je n'ai trouvé aucune mention de l'opérateur `-->`. Dans la norme C++, il y a les opérateurs `->` (accès à un membre via un pointeur), `--` (décrémentation), mais pas `-->`. Comment est-ce possible ? Est-ce une astuce du compilateur ou une particularité de la norme ? Pourquoi le code avec `while (x --> 0)` se compile et fonctionne, alors qu'un tel opérateur n'existe pas ? Et est-il sûr d'écrire cela dans des projets réels ? Je serais reconnaissant pour une explication ! P.S. Version du compilateur : GCC 11.2, norme C++20. <<>>

Réponse courte : c'est