- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
从 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";
相反,我们得到了撇号 ('
),我所知道的任何书写系统都没有将它用作数字分隔符。
是否有理由选择撇号而不是简单的空格?
† 令人费解的是,所有这些语言在文本中都保留了逗号“拆分”原本原子句子的概念,句号用于“终止”句子——至少对我来说,这非常类似于逗号“分解”数字的整数部分和句点“终止”它,为小数输入做好准备。
最佳答案
以前有一篇论文,n3499 ,这告诉我们,尽管 Bjarne 本人建议将空格作为分隔符:
While this approach is consistent with one common typeographic style, it suffers from some compatibility problems.
- It does not match the syntax for a pp-number, and would minimally require extending that syntax.
- More importantly, there would be some syntactic ambiguity when a hexadecimal digit in the range [a-f] follows a space. The preprocessor would not know whether to perform symbol substitution starting after the space.
- It would likely make editing tools that grab "words" less reliable.
我猜下面的例子是注意到的主要问题:
const int x = 0x123 a;
虽然在我看来这个理由是相当薄弱的。我仍然想不出一个真实的例子来打破它。
“编辑工具”的原理更糟,因为 1'234
基本上破坏了人类已知的所有语法荧光笔(例如 Markdown 在上述问题本身中使用的!)并制作了更新版本说荧光笔更难实现。
不过,无论好坏,这都是导致采用撇号的理由。
关于c++ - 为什么没有为 C++14 数字分隔符选择空格字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767781/
我想知道有没有免费的PL/pgSQL开发环境。 在 Notepad++ 中编写代码,替换函数并运行它会使过程变慢。我目前正在使用 pgAdmin(仅用于替换和运行程序),但这不是我想要的。 我知道这里
我是一名优秀的程序员,十分优秀!