Why does postfix operator++ have higher precedence than prefix operator++?
Defined this way, we can do neither ++x++ nor ++x-- . But on the other hand, both (++x)++ and (++x)-- are useful expressions: (++x)++ increments x by two and returns the value "in the middle", while (++x)-- is essentially equivalent to x+1 but completely avoids having to call operator+ , which can be quite useful sometimes. So why is the precedence not defined to have ++x++ automatically expand to (++x)++ rather than ++(x++) ? Is there some hidden meaning to the latter which I don't understand, or is it just to keep the precedence a simple list with all prefix operators making up one single