 <p>Ok, it's simple, I just misread the standard... From the C++ 11, §5 [expr] p9:</p> <blockquote> <p>Many binary operators that expect operands of arithmetic or enumeration type cause conversions and yield result types in a similar way. <em>The purpose is to yield a common type, which is also the type of the result.</em> This pattern is called the usual arithmetic conversions, ...</p> </blockquote>