Warum wurde das Leerzeichen nicht für C ++ 14-stellige Trennzeichen ausgewählt?

b C ++ 14 dank n3781 (was an sich diese Frage nicht beantwortet) Wir können Code wie den folgenden schreiben:

const int x = 1'234; // one thousand two hundred and thirty four

Ziel ist es, Code wie diesen zu verbessern:

const int y = 100000000;

und machen es lesbarer.

Der Unterstrich _as Zeichen @ wurde in C ++ 11 bereits von benutzerdefinierten Literalen verwendet, und das Komma ,) hat Lokalisierungsprobleme - viele europäische Länder verblüffend† benutze dies als Dezimaltrennzeichen - und kollidiert mit dem Kommaoperator, obwohl ich mich frage, welcher Code in der realen Welt möglicherweise kaputt gegangen sein könnte, indem ich z.1,234,567.

Anyway, eine bessere Lösung scheint das Leerzeichen zu sein:

const int z = 1 000 000;

Diese benachbarten numerischen Literal-Token können vom Präprozessor ebenso verkettet werden wie String-Literale:

const char x[5] = "a" "bc" "d";

Stattdessen bekommen wir den Apostroph '), wird von keinem Schreibsystem verwendet, das mir als Zifferntrennzeichen bekannt ist.

Gibt es einen Grund, warum das Apostroph anstelle eines einfachen Leerzeichens gewählt wurde?

† Es ist verblüffend, weil alle diese Sprachen im Text den Begriff eines Kommas beibehalten, das einen ansonsten atomaren Satz "auseinanderbricht", mit einer Periode, die den Satz "abschließt" - zumindest für mich ist dies ziemlich analog zu a Komma "zerbricht" den integralen Teil einer Zahl und eine Periode "beendet" sie für die fraktionierte Eingabe.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage