https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64870
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Conrad from comment #4)
> (In reply to Marc Glisse from comment #3)
> >
> > Except when there is an = sign, where you expect the right hand side to be
> > evaluated before the left? And maybe a few other cases?
>
> For iostreams which use the << operator for printing, the expected order is
> to print things left-to-right, and hence evaluate left-to-right.
No, that is not how C++ defines it. As mentioned before C++ does not define
the order of the execution of the operands.
>
> > > What is the benefit in changing the expected order of evaluation?
> >
> > Performance.
>
> Is there a benchmark to support the re-ordering? If we're talking 1%-2%
> here and there, is this really worth the "wtf" moments?
There is no wtf moments. This is not Java which has well defined behavior :).