Mylące pierwszeństwo operatora: a << b + c << d
Operator+
ma wyższy priorytet niż<<
w C ++, co oznaczałoby to wyrażeniea << b + c << d
należy ocenić jako:
a << (b + c) << d
Ale tonie ma sensu. Więcej sensu można uzyskać, podążając
a << (b + (c << d))
Ale to narusza pierwszeństwo+
koniec<<
, prawda? W jaki sposób kompilatory oceniają część „ma sens”?
AKTUALIZACJA: Zadając pytanie pomyślałem, że kompilator używa drugiego wariantu, dlatego zastanawiam się, jak kompilator doszedł do tej oceny. W rzeczywistości pierwszy jest używany i jest poprawny.