It doesn't matter. The order of evaluation of increments and decrements is undefined. It doesn't depend on parentheses.
If there was a comma around there, however...
The parenthesis are meaningless here because the ++ operator has a higher precedence than the + or = operators anyway.
So it's undefined in either case.
The compiler is free to choose to do it like so:
1 2 3 4 5 6
b = (a+1) + (a+1);
a += 2;
// end result:
// b == 2
// a == 2
or it could do it as either way Grey Wolf suggested. Or it could do it some other completely different way we haven't speculated yet.
Bottom line: you cannot modify a variable more than once between sequence points. The sequence point here is the semicolon. Since we're modifying a twice before the semicolon, the result is undefined.