【发布时间】:2015-12-09 23:31:34
【问题描述】:
C++14 沿 3'141'592'653'589 的行将数字分隔符的概念引入文字。现在这是可读代码的 great 功能,但我想知道它是否允许在0x/0b-type 文字的数字部分之前引用 。在我看来:
unsigned int topThreeBits = 0b'1110'0000;
unsigned int hexNum = 0x'dead'beef;
比没有前导分隔符的 更具可读性:
unsigned int topThreeBits = 0b1110'0000;
unsigned int hexNum = 0xdead'beef;
因为它清楚地描绘了数字的基数。
由于我还没有 C++14 编译器,我需要以一种或另一种方式确认它是否允许这样做。
我知道它对于像 '123'456 这样的无前缀数字没有意义,尤其是因为解析器不知道它是一个 char 变量还是数字文字。
但是,对于带前缀的文字,我看不出在第一个 ' 到达时令牌的含义有任何混淆 - 0x/0b 已经指示它将是一个数字文字.
【问题讨论】:
-
@underscore_d,领先的
0实际上是一个绝妙的主意,我没想到。前导零对值没有影响,它仍然允许视觉上不同的“实数部分”。 -
是的,简单但有效,有时这样的事情很容易错过:-)
标签: c++ c++14 digit-separator