十六进制或二进制数中的数字之前是否允许使用数字分隔符?

2023-12-24

C++14 将数字分隔符的概念引入到文字中,大致如下:3'141'592'653'589。现在这是一个great具有可读代码的功能,但我想知道它是否允许引号beforea 的数字部分0x/0b- 类型文字。在我看来,这:

unsigned int topThreeBits = 0b'1110'0000;
unsigned int hexNum       = 0x'dead'beef;

比第一个更具可读性without前导分隔符:

unsigned int topThreeBits = 0b1110'0000;
unsigned int hexNum       = 0xdead'beef;

因为它清楚地描绘了数字的基数。

由于我还没有 C++14 编译器,因此我需要以某种方式确认它是否允许这样做。

我知道这对于无前缀的数字没有意义,例如'123'456,特别是因为解析器不知道它是否意味着char变量或数字文字。

但是,对于带前缀的文字,我看不出对于第一个标记的含义有任何混淆'到达——0x/0b已经规定它将是一个数字文字。


如果我们从语法来看C++14 标准草案:N4140 https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf部分2.14.2 [词法图标],不允许紧跟在十六进制或二进制文字的基本指示符之后:

binary-literal:
  0b binary-digit
  0B binary-digit
  binary-literal ’opt binary-digit
[...]
hexadecimal-literal:
  0x hexadecimal-digit
  0X hexadecimal-digit
  hexadecimal-literal ’opt hexadecimal-digit

尽管如此,八进制文字确实允许在基本指示符之后使用分隔符:

octal-literal:
  0
  octal-literal ’opt octal-digit

我们还可以使用提供 C++14 编译器的在线编译器之一进行检查,例如Coliru http://coliru.stacked-crooked.com/a/42736b1305902325 or Wandbox http://melpon.org/wandbox/permlink/bAOmGLMQyO7djn41.

跟踪这一变化的进化工作组问题是第 27 期:N3781 单引号作为数字分隔符、N3661、N3499 数字分隔符、N3448 无痛数字分隔符 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4422.html#27。我没有看到这个设计决定的明显理由,也许这只是字面解释数字分隔符.

请注意,我们可以找到标准草案列表在哪里可以找到当前的 C 或 C++ 标准文档? https://stackoverflow.com/q/81656/1708801.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十六进制或二进制数中的数字之前是否允许使用数字分隔符? 的相关文章

  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • 元组在 VS2012 中如何工作?

    Visual Studio 2012 功能 tuples但不是可变参数模板 这是如何完成的 如何在不使用可变模板的情况下实现元组 简而言之 微软做了与之前在 NET 中实现类似元组的数据类型完全相同的事情 创建许多版本 每个版本都有固定数量
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 如何使用 Roslyn 通过扩展方法、静态类中的方法以及带有 ref/out 参数的方法来访问调用

    我正在致力于创建一个开源项目 用于创建 NET UML 序列图 该项目利用名为 js sequence diagrams 的 javascript 库 我不确定 Roslyn 是适合这项工作的工具 但我想我应该尝试一下 所以我整理了一些概念
  • 无法为 wsdl 文件创建服务引用

    I have wsdl文件和xsd我本地机器上的文件 我想在项目中添加服务引用 我没有网络服务 我只有wsdl file 我收到以下错误 The document was understood but it could not be pro
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • 将 Swagger 与命名空间版本的 WebApi 结合使用

    我已经找到了如何使用基于名称空间的 WebAPI 版本这个班 https aspnet codeplex com SourceControl changeset view dd207952fa86 Samples WebApi Namesp
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost

随机推荐

  • 如何让 HoneySQL 将 order by 作为复合键处理?

    请注意 输出已被 风格化 因此在此处读起来更好 我有什么 sql format gt sqlh select sqlh from event sqlh merge where in field id 1673576 1945627 1338
  • jvm如何使用多核CPU资源?

    通常 一个java程序运行在一个名为 javaw 的进程中 当我运行一个进程时 我只能获得一个核心 多核 的最大资源 但是当我在jvm中运行多线程程序时 它使用的核心数是根据线程数而定的 这超出了一个进程可以处理的范围 那么谁能给我一些关于
  • Android Studio 两种风格,具有不同的清单文件

    我在 Android Studio 中为我的风格定义两个不同的清单文件时遇到问题 这是我当前的项目结构 The AndroidManifest xml in the free味道看起来像这样
  • Funq 在 ServiceStack 中的使用

    我怎样才能访问Container实例脱离控制器 我必须使用Container Resolve在我的课堂上 但我如何访问Container实例 是单例吗 我可以用吗new Container 或者有没有类似的链条Funq StaticCont
  • 如何将不在 highcharts 中 x 轴和 y 轴上的值传递给工具提示

    我需要在工具提示上显示其他值 名称 计数和另一个值 android 我在一个Example https stackoverflow com questions 11294326 highcharts pass multiple values
  • 如何在golang和mongodb中通过id查找

    我需要使用 ObjectIdHex 获取值并进行更新并查看结果 我正在使用 mongodb 和 golang 但是以下代码无法按预期工作 package main import fmt gopkg in mgo v2 gopkg in mg
  • R - 使用 dplyr 根据每列的分位数过滤每列

    给定一个数据框 我想使用每列的分位数来过滤每列 我更喜欢使用 dplyr tidyverse 来完成此任务 set seed 23 df lt data frame x1 runif 10 0 100 x2 runif 10 0 100 x
  • UIViewController:extendLayoutInincludesOpaqueBars 和滚动视图偏移

    我的应用程序的视图层次结构非常简单 UINavigationController包含一个UITableViewController 导航控制器的导航栏是不透明的 这会导致导航转换期间表视图出现一些奇怪的插入行为 如下所示 为了解决这个问题
  • Db2 从 jdbc 合并动态值

    我想使用 db2 merge 语句将其作为来自 jdbc 的语句提交 我处于以下场景 我正在使用专有的持久层 并且正在处理一个实体 我不知道它是否已经持久存在 并且我想使用合并语句来插入或更新数据库上的行 是否可以 假设我正在处理桌子peo
  • PHP 本周的工作日,为什么 date() 和 strtotime 取下周?

    我使用以下代码来获取工作日的 Y m d 格式 monday date Y m d strtotime Monday tuesday date Y m d strtotime Tuesday wednesday date Y m d str
  • 如何编写基于类的 Django 验证器?

    我正在使用 Django 1 8 The 有关编写验证器的文档 https docs djangoproject com en 1 8 ref validators writing validators有一个基于函数的验证器的示例 它还说明
  • Java 杀死或终止线程

    大家好 基本上 当用户按下 终止 按钮时 我需要终止或停止正在运行的线程 该线程循环遍历数组列表并在 JTextArea 上显示每个事件 要求是当用户按下 终止 按钮时 我需要终止正在运行的线程 同时向数组列表添加一个新的 终止 事件 并让
  • 如何扩展 Pydantic 对象并更改某些字段的类型?

    有两个类似的 pydantic 对象 唯一的区别是有些字段是可选的 如何只定义一个对象中的字段并扩展到另一个对象中 class ProjectCreateObject BaseModel project id str project nam
  • 如何让 JOOQ 在 IN 子句中使用数组

    我想要JOOQ生成 in 并将列表绑定为数组参数 Postgres 我的代码看起来像 where Tables TABLE FIELD in idsList 我怎样才能做到这一点 为什么默认情况下不这样做 因为它比字符串的生成 和由 PG
  • 如何向 PHP 添加证书颁发机构,以便 file() 函数信任其签名的证书?

    我需要打开由私人公司的证书颁发机构签名的远程资源 目前 PHP 不会打开资源 因为它不信任证书签名者 我知道您可以使用流上下文对象执行证书 但我正在寻找一种方法来为 PHP 提供新证书颁发机构的公钥并拥有file 和类似的方法信任由该机构签
  • 如何从完整字符串 iOS swift 中找到字符串的多个 NSRange

    let fullString Hello world there are string 07 continents and string 195 countries let range NSMakeRange 24 2 NSMakeRang
  • Android NDK 的 Netlink 实现

    我有一个类似任务的要求 如中提到的这个链接 https kristrev github io 2013 07 26 passive monitoring of sockets on linux Android 中套接字的被动监控 一种方法是
  • Android Kotlin - 如何扩展 ConstraintLayout?

    我希望我的 ConstaintLayout 带有额外的附加属性 但我在扩展它时遇到了麻烦 更准确地说 我无法将正确的构造函数放入 class myCL ConstraintLayout 为了确保您的行为不会出现任何怪癖 您应该像这样实现它
  • “size”和“length”方法有什么区别

    当我跑的时候size and length在字符串上 它们返回相同的值 akash size gt 5 akash length gt 5 这两种方法有什么区别 Summary 在 Ruby 中 方法可以被重写 因此有些类中的多个方法会产生
  • 十六进制或二进制数中的数字之前是否允许使用数字分隔符?

    C 14 将数字分隔符的概念引入到文字中 大致如下 3 141 592 653 589 现在这是一个great具有可读代码的功能 但我想知道它是否允许引号beforea 的数字部分0x 0b 类型文字 在我看来 这 unsigned int