Is it legal in standard C++ to treat the intermediate result of a computation as having a greater precision that the source types?
float f, g, h, x;
x = f + g + h; // compute f + g to a higher precision than float, then add to h, and finally round to float precision
If so, is this explicitly stated in the C++ standard? If so, where?