c++ bit fields and -Wconversion
问题 -Wconversion is producing warnings when I assign a value to a bit field with g++. Source file: struct Foo { public: unsigned int x : 4; unsigned int y : 9; unsigned int z : 17; }; int main(int, char**) { int a = 12; Foo f; f.x = a; f.x = (unsigned int)a; f.x = (unsigned char)a; f.x = (unsigned short)a; f.x = (unsigned)a; f.y = a; f.y = (unsigned int)a; f.y = (unsigned char)a; // no warning, sizeof(char) < 9 f.y = (unsigned short)a; f.y = (unsigned)a; f.z = a; f.z = (unsigned int)a; f.z =