This integer promotion doesn't happen everywhere, namely only but when
arithmetic. That's why you get a uint32_t during overload resolution and
That was mainly what I wanted to know. Is there a reason for not having a unified behaviour like always use the type declared in the struct.