Compiler Warning (level 4) C4254
The latest version of this topic can be found at Compiler Warning (level 4) C4254.
operator' : conversion from 'type1' to 'type2', possible loss of data
A larger bit field was assigned to a smaller bit field. There could be a loss of data.
This warning is off by default. See Compiler Warnings That Are Off by Default for more information.
The following sample generates C4254:
// C4254.cpp
// compile with: /W4
#pragma warning(default: 4254)
struct X {
int a : 20;
int b : 12;
};
int main() {
X *x = new X();
x->b = 10;
x->a = 4;
x->a = x->b; // OK
x->b = x->a; // C4254
};