Посмотрите на этот фрагмент кода:
int a = 0xe+1;
Clang, gcc, icc не компилируют это:
t.cpp:1:12: error: invalid suffix '+' on integer constant
MSVC успешно компилируется.
Какой компилятор прав? Если clang и gcc верны, почему это происходит?
Примечание: если я добавлю пробел до +
, код компилируется. Если я изменяю 0xe
на 0xf
, он тоже компилируется. Может быть, это должно что-то делать с экспоненциальной нотацией (например, 1.2e+3
)?