What would Your_Favorite_Compiler do?
jules: Think about how this is compiled. In machine language there are no nested expressions, so the compiler will have to split the expression up.    expression( ... ++x ... )

will probably be translated to    x = x+1;
    expression( ... x ... )

This is the simplest way to compile ++x:    1. put x=x+1 before the expression
    2. replace ++x with x

So I think most languages would get 22.But in languages where + is a function there's a good chance you get 21.