Предупреждение компилятора (уровень 4) C4254
Оператор: преобразование из типа1:'field_bits" в "type2":'field_bits", возможная потеря данных
Более крупное битовое поле было назначено меньшему биту. Может возникнуть потеря данных.
Это предупреждение отключено по умолчанию. Дополнительные сведения см. в разделе Compiler Warnings That Are Off by Default.
Следующий пример приводит к возникновению ошибки 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
};