Verwirrende Rangfolge der Operatoren: a << b + c << d

Operator+ hat höhere Priorität als<< in C ++, was diesen Ausdruck bedeuten würdea << b + c << d sollte bewertet werden als:

a << (b + c) << d

Aber dasmacht keinen Sinn. Mehr Sinn kann erhalten werden, wenn man folgt

a << (b + (c << d))

Aber das verstößt gegen die Vorrangstellung der+ Über<<nicht wahr Wie bewerten Compiler den Teil "Hat Sinn"?

AKTUALISIEREN: Als ich die Frage stellte, dachte ich, dass die zweite Variante vom Compiler verwendet wird, weshalb ich mich fragte, wie der Compiler zu dieser Bewertung gekommen ist. In der Tat wird der erste verwendet und es ist der richtige.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage