static assert(0xF234_5678_9ABC_5A5AUL == 17452669531959614042UL);

auto a = 0xF234_5678_9ABC_5A5AL; // ok, type is ulong
auto b = 17452669531959614042L; // error, signed integer overflow

But p33. in TDPL states:
"To write a hexadecimal integral literal, use the prefix 0x or 0X followed by a sequence of the letters 0-9, a-f, A-F, or _. [...] All of these literals can be suffixed similarly to the decimal constants, and the rules governing their types are identical to those for decimal literals."

Is this a compiler bug or an error in TDPL?

Reply via email to