Numeric literals of more than a few digits are hard to read.
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:
1048576
,
1'048'576
, 0X100000
, 0x10'0000
, and 0'004'000'000
all have the same value.1.602'176'565e-19
and 1.602176565e-19
have 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;