Digit separators
Digit Separator
Numeric literals of more than a few digits are hard to read.
- Pronounce 7237498123.
- Compare 237498123 with 237499123 for equality.
- Decide whether 237499123 or 20249472 is larger.
C++14 define Simple Quotation Mark ' as a digit separator, in numbers and user-defined literals. This can make it easier for human readers to parse large numbers.
long long decn = 1'000'000'000ll;
long long hexn = 0xFFFF'FFFFll;
long long octn = 00'23'00ll;
long long binn = 0b1010'0011ll;Single quotes mark are ignored when determining its value.
Example:
- The literals
1048576,
1'048'576, 0X100000, 0x10'0000, and 0'004'000'000 all have the same value.
- The literals
1.602'176'565e-19and1.602176565e-19have the same value.
The position of the single quotes is irrelevant. All the following are equivalent:
long long a1 = 123456789ll;
long long a2 = 123'456'789ll;
long long a3 = 12'34'56'78'9ll;
long long a4 = 12345'6789ll;It is also allowed in user-defined literals:
std::chrono::seconds tiempo = 1'674'456s + 5'300h;