C++ Separatore di cifre


Esempio

I valori letterali numerici di più di poche cifre sono difficili da leggere.

  • Pronuncia 7237498123.
  • Confronta 237498123 con 237499123 per l'uguaglianza.
  • Decidi se 237499123 o 20249472 è più grande.

C++14 definisce Simple Quotation Mark ' come separatore di cifre, in numeri e letterali definiti dall'utente. Questo può rendere più facile per i lettori umani l'analisi di grandi numeri.

C ++ 14
long long decn = 1'000'000'000ll;
long long hexn = 0xFFFF'FFFFll; 
long long octn = 00'23'00ll;
long long binn = 0b1010'0011ll;

Le virgolette singole vengono ignorate quando si determina il suo valore.

Esempio:

  • I valori letterali 1048576 , 1'048'576 , 0X100000 , 0x10'0000 e 0'004'000'000 hanno tutti lo stesso valore.
  • I letterali 1.602'176'565e-19 e 1.602176565e-19 hanno lo stesso valore.

La posizione delle virgolette singole è irrilevante. Tutti i seguenti sono equivalenti:

C ++ 14
long long a1 = 123456789ll;
long long a2 = 123'456'789ll; 
long long a3 = 12'34'56'78'9ll;
long long a4 = 12345'6789ll;

È anche consentito in valori letterali user-defined :

C ++ 14
std::chrono::seconds tiempo = 1'674'456s + 5'300h;