29 votes

Que signifie a>?=b ?

J'ai trouvé le code ci-dessous et je ne comprends pas ce qu'il signifie :

res>?=m[2];

Voici le code de l'endroit où je l'ai trouvé et son contexte.

vector<int> m(3);
int s = 0;
... do stuff with m ...
res>?=m[2];
return res;

37voto

Rahul Tripathi Points 1

C'est une ancienne extension de GCC.

L'équivalent de a >?= b est a = max(a,b);

Vous pouvez consulter Opérateurs minimum et maximum en C++

Il est très pratique d'avoir des opérateurs qui renvoient le "minimum" ou le "maximum" de deux arguments. le "maximum" de deux arguments. Dans GNU C++ (mais pas dans GNU C),

a <? b

est le minimum, renvoyant la plus petite des valeurs numériques a et b ;

a > ? b

est le maximum, renvoyant la plus grande des valeurs numériques a et b.

A propos :-

Ces opérateurs sont non standard et sont déprécié dans GCC . Vous devez utiliser std::min y std::max à la place.

7voto

klm123 Points 3001

Ce n'est certainement pas du C++ standard. Je peux devinez qui est un raccourci pour l'opérateur d'affectation + ternaire, similaire à l'opérateur d'affectation + binaire, tel que operator+= et autres :

 res = (res > m[2]) ? res : m[2];

Vous pouvez lire le rapport ici : Extensions du langage C++ :

a <? b
is the minimum, returning the smaller of the numeric values a and b;
a >? b
is the maximum, returning the larger of the numeric values a and b.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X