为什么未为C ++ 14数字分隔符选择空格字符?
从C ++ 14开始,由于n3781(它本身不能回答这个问题),我们可以编写如下代码: const int x = 1'234; // one thousand two hundred and thirty four 目的是改进这样的代码: const int y = 100000000; 并使其更具可读性。 下划线(_)字符已经由用户定义的文本采取了C ++ 11,和逗号(,)的本地化问题-许多欧洲国家令人困惑†以此作为小数点分隔符-和冲突与逗号操作,虽然我做的想知道允许使用可能破坏了哪些实际代码1,234,567。 无论如何,更好的解决方案似乎是空格字符: const int z = 1 000 000; 这些相邻的数字文字标记可以和字符串文字一样由预处理器连接: const char x[5] = "a" "bc" "d"; 相反,我们得到撇号('),我所知道的任何书写系统都没有使用它作为数字分隔符。 是否存在选择撇号而不是简单空格的原因? †之所以感到莫名其妙,是因为所有这些语言在文本内都保持着逗号的概念,即“分开”原本原子的句子,并用句号“终结”该句子-至少对我而言,这与逗号“分解”数字的整数部分,并用句号“终止”数字以准备小数输入。