Десятичное число 4294967295 равно шестнадцатеричному 0xFFFFFFFF , поэтому я ожидаю, что литерал будет иметь одинаковый тип независимо от того, в какой базе он выражен, но
std::is_same<decltype(0xFFFFFFFF), decltype(4294967295)>::value; //evaluates false
Похоже, что на моем компиляторе decltype(0xFFFFFFFF)
равно unsigned int
, а decltype(4294967295)
равно signed long
.