Почему компилятор не предупреждает о преобразовании int в uint8_t?
#include <cstdint>
int main(void) {
uint8_t mask1 { ~1 };// error: narrowing conversion of '-2' from 'int' to 'uint8_t' {aka 'unsigned char'} [-Wnarrowing]
uint8_t mask2 = ~1 ;// Почему здесь ошибка не возникает?
return 0;
}
Qubc, Можно добавить опцию -Wconversion, должно и во втором случае появиться предупреждение.
-Wnarrowing - активизируется через -Wall, а -Wconversion нет.
Это я про gcc.