Narrowing conversions in C++0x. Is it just me, or does this sound like a breaking change?

I ran into this breaking change when I used GCC. The compiler printed an error for code like this: void foo(const unsigned long long &i) { unsigned int a[2] = {i & 0xFFFFFFFF, i >> 32}; } In function void foo(const long long unsigned int&): error: narrowing conversion of (((long long unsigned int)i) & 4294967295ull) … Read more