我们可以将规范引用中未明确引用的内容应用到 C++ 标准吗?

2024-01-04

在 C++11 标准中(最接近的草案是 N3337 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf) 部分1.2 规范性引用文件 says:

以下参考文件是必不可少的 本文件的应用。对于注明日期的参考文献,仅提供版本 引用适用。对于未注明日期的参考文献,最新版本 参考文件(包括任何修订)适用。

但没有关于如何应用参考文献的指南。最简单的情况是当 C++11 显式引用回引用时,例如在部分中3.9.1 基本类型它说:

[...]有符号和无符号整数类型应满足 C 标准第 5.2.4.2.1 节中给出的约束。

但是其他没有明确引用的情况又如何呢?例如,C++11 使用单词不确定值但它没有定义该术语。规范性参考文献包括:

— ISO/IEC 9899:1999,编程语言 — C

[...]

— ISO/IEC 9899:1999/Cor.3:2007(E),编程语言 — C,技术勘误表 3

and C99(c99标准草案 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf)确实有一个定义不确定值在部分3.17.2其中说:

未指定的值或陷阱表示

这样说是否正确不确定值C++11 是参考 C99 定义的,例如这个答案似乎适用于位的定义 https://stackoverflow.com/a/12655876/1708801?如果是,那又怎样陷阱表示一节中介绍了6.2.6.1段落5 under 类型的表示在C99中?

慷慨的解读是,只要 C++11 中没有任何内容与规范性参考发生冲突,那么它就适用,这是正确的解释吗?一些答案C++ 中的不确定行为是什么?它与未定义的行为有何不同? https://stackoverflow.com/questions/11240484/what-is-indeterminate-behavior-in-c-how-is-it-different-from-undefined-behav似乎意味着慷慨的阅读,尽管某些答案的语言有点宽松,因此很难说出某些观点到底声称了什么。


的功能规范性参考文献ISO 标准文件的部分定义于ISO/IEC 指令,第 2 部分,2011 年 http://www.iec.ch/members_experts/refdocs/iec/isoiec-dir2%7Bed6.0%7Den.pdf §6.2.2:

6.2.2 规范性引用文件

该条件元素应给出引用文件的列表(见 6.6.7.5) 该文件的方式使得它们对于该文件的应用是不可或缺的。对于注明日期的参考文献,每份参考文献均应标明其出版年份,或者,在查询或最终草案的情况下,应标明破折号以及脚注“待出版”和完整标题。对于未注明日期的参考文献,不得给出出版年份或破折号。当未注明日期的引用涉及文件的所有部分时,出版号后面应注明“(所有部分)”和该系列部分的总标题(即介绍性和主要内容,见附件 E)。

原则上引用的文件应为ISO和/或IEC发布的文件。 可以以规范的方式引用其他机构发布的文件,前提是:

a) 所引用的文件被相关 ISO 和/或 IEC 委员会认可为 具有广泛的接受度和权威地位并且可以公开使用,

b) 有关的 ISO 和/或 IEC 委员会已获得作者的同意或 引用文件的出版商(如果已知)及其包含和存在 按要求提供——作者或出版商将被期望提供 可根据要求提供此类文件,

c) 作者或出版商(如果已知)也同意通知 ISO 和/或 IEC 委员会对他们打算修改所参考的文件和 修订涉及的要点,以及

d) 有关 ISO 和/或 IEC 委员会承诺根据以下情况审查情况 参考文档中的任何更改。

该清单应采用以下措辞介绍:

“本标准规范性引用了下列文件的全部或部分内容: 文件,对于其应用是必不可少的。对于注明日期的参考文献,仅提供版本 引用适用。对于未注明日期的参考文献,参考文献的最新版本 (包括任何修订)适用。”

上述措辞也适用于多部分文档的一部分。

该清单不得包括以下内容:

  • 未公开提供的参考文件;

  • 仅以提供信息的方式引用的参考文件;

  • 参考文件仅作为文件准备过程中的参考文献或背景材料。

此类参考文献可在参考书目中列出(见 6.4.2)。

值得注意的是,它没有说引用文档的内容已合并到当前文档中。本质上,它作为以某种方式规范引用的所有其他标准文档的列表别处在文件中。

因此,并非 C99 中的所有内容都合并到 C++11 中 - 只有 C99 中特别引用为合并到 C++11 标准中的那些部分。

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

我们可以将规范引用中未明确引用的内容应用到 C++ 标准吗? 的相关文章

  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • getline 之后返回到文件开头

    所以我已经从文件中读取了所有行 while getline ifile line logic 其中 ifile 是 ifstream line 是字符串 我的问题是我现在想再次使用 getline 并且似乎无法返回到文件的开头 因为运行 c
  • 在 WCF 上重用我的 PagedList 对象

    问题 我有一个自定义集合PagedList
  • strtok() 使用安全吗[重复]

    这个问题在这里已经有答案了 我读到了很多负面的东西strtok 有人说它已经过时 有人说它不是线程安全的 等等 那么真相是什么 我可以使用吗strtok 它是线程安全的吗 Note 我正在使用 Visual C 您可以使用它 它是标准库的一
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 如何从不同的线程访问控件?

    如何从创建控件的线程以外的线程访问控件 避免跨线程错误 这是我的示例代码 private void Form1 Load object sender EventArgs e Thread t new Thread foo t Start p
  • 选择initializer_list迭代器定义

    Why std initializer list
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • 使用 OleDbCommand / OleDbDataAdapter 读取 CSV 文件

    我不明白为什么 但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时 在这两种情况下 生成的数据结构良好 它识别文件头中的列 但行数据都是空字符串 我之前已经成功进行过多次 CSV 处理 因此我
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 在 C# .NET 中对非 ASCII 字符进行编码

    我想向我的应用程序发送的电子邮件添加自定义标头 标头名称只能包含 ASCII 字符 但对于值和用户可能会输入 UTF 8 字符 我必须对它们进行 Base64 编码 此外 我还必须将它们解码回 UTF 8 以便在 UI 中向用户显示它们 最
  • 实体框架读取列但阻止其更新

    给定一个数据库表 其中有一列包含历史数据但不再填充 实体框架中是否有一种方法可以读取该列 但在使用相同的模型对象时防止它被更新 例如我有一个对象 public class MyObject public string CurrentData
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • 基础设施 - 同步和异步接口和实现? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在实现库 基础设施时 并且该 API 的用户希望同步和异步使用代码 我读到混合同步和异步并不是一个好主意 例如 同步实现包括等待异步实现 显然
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • 将变量从 Scala 中的存在类型 TypeCast 转换为运行时类型

    这个线程 https stackoverflow com questions 29380839 trait runtime type of type parameter through typetag when used with exis
  • 不在网络抓取中迭代列表

    通过链接 我尝试创建两个列表 一个用于国家 地区 另一个用于货币 但是 我陷入了困境 它只给了我第一个国家 地区名称 但没有迭代到所有国家 地区的列表 任何有关如何解决此问题的帮助将不胜感激 提前致谢 这是我的尝试 from bs4 imp
  • ORDER BY 重新加载,cassandra

    我想对给定的列族进行排序 为此我尝试使用选项 CLUSTERING ORDER BY 创建一个表 我总是遇到以下错误 1 变体 A 导致错误请求 缺少列 userid 的 CLUSTERING ORDER陈述 CREATE TABLE te
  • 使用Service、TimerTask和BroadcastReceiver来检查各种更新

    我正在尝试创建一个简单的程序来执行以下操作 由我的活动 UpdateServiceActivity 启动的服务 NewsService 检查新闻 如果发现新闻 NewsService 则会向接收者 NewsReceiver 发送广播 接收到
  • Android 10秒后隐藏布局?

    我在单击按钮时显示了一个布局 我想在 10 秒后隐藏该布局 protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState mVolHa
  • 在 Visual Studio 2008 中调试 Web 服务时如何避免超时错误

    我正在使用控制台应用程序调用 Web 服务方法 并使用 vs2008 中的调试器单步调试代码 有时我需要停下来思考一些事情 比较一下价值观 不是说几个小时 只是几分钟 此时web服务超时了 如何避免这种情况 让web服务根本不超时 谢谢 好
  • 如何排除和过滤pandas中的几列?

    我知道我们可以使用 pandas dataframe 过滤器仅选择几列 但是我们也可以仅排除某些列吗 这是 MWE import numpy as np import pandas as pd df pd DataFrame id 1 2
  • 如何在 MKMapView 上绘制当前位置到所需位置之间的路线?

    我想显示我当前位置和所需位置之间的路线 我能够做到这一点 但是当源点和目的地点到目前为止时 它不会显示路线并给出内存警告 您能建议任何示例代码或任何方法来做到这一点吗 以下代码用于绘制当前位置到所需位置之间的路径 void viewDidL
  • jqGrid dataUrl下拉列表不刷新

    我是 Web 开发新手 正在开发我的第一个 ASP NET MVC 3 应用程序 我正在使用 jqGrid 并注意到刷新页面不会刷新下拉列表中的值 直到我在另一个选项卡中打开同一页面 然后刷新第一个选项卡将获取更改的值 我有一个控制器操作
  • For-each 与迭代器。哪个将是更好的选择

    考虑以下场景 List
  • 将新记录添加到私人 Outlook 通讯组列表

    我需要从文件或数据库中读取包含姓名和电子邮件的记录 并将它们添加到现有的 Oulook 通讯组列表 来自私人联系人 而不是来自 GAL 我刚刚看到使用 LINQ to DASL 从 OL 读取邮件和约会的示例 但我不知道如何列出 dist
  • Bootstrap 表,空单元格中的破折号/连字符

    我正在使用Wenzhixin的bootstrap table模块 http bootstrap table wenzhixin net cn http bootstrap table wenzhixin net cn 当我使用 JSON 加
  • 在express.js中设置cookie出现j:前缀

    我正在尝试使用 res cookie 设置 cookie 如下所示 res cookie userId req user id set cookie here console log req user id returned correct
  • 将哈希锚定到页面底部

    转到页面 底部 的通用 HTML 锚标记是什么 我知道标签 会自动将用户带到页面顶部 但我不太确定页面底部 没有一个 不过 你可以用类似的东西来模拟它 a a 然后链接到 bottom 你可能会发现这个帖子 https stackoverf
  • 如何将 int 转换为一系列字符

    我正在尝试将 8 位微控制器 PIC 上的 C 整数分解为其 ASCII 等效字符 例如 将 982 转换为 9 8 2 到目前为止我想出的一切似乎都相当暴力 这是我现在基本上正在做的主要想法 if 10 lt n n lt 100 iso
  • Celery (Django) 速率限制

    我正在使用 Celery 来处理多个数据挖掘任务 其中一项任务连接到远程服务 该服务最多允许 10 个同时连接per user 或者换句话说 它CAN全球连接数超过 10 个 但CANNOT每个单独作业超过 10 个连接 I THINK 令
  • 权限被拒绝使用 Excel 12.0 库和 VB6 打开 Excel 文件

    我以前曾在 VB6 应用程序中多次使用 Excel 但从未遇到过如此奇怪的问题 试图完成一些非常简单的事情 我正在尝试打开 Excel xls 或 xlsx 文件并读取值 正如您可能看到的那样 当我尝试打开该文件时 收到错误 70 权限被拒
  • 将 CSV 文件内容与 filecmp 进行比较并忽略元数据

    import filecmp comparison filecmp dircmp dir local dir server comparison report full closure 我想将本地计算机上保存的所有 CSV 文件与服务器上保
  • 引入输出语句时MiniZinc找不到解决方案

    我有一个用 minizinc 编写的简单模型 我使用 gecode 首先将其编译为 flat zinc 来解决它 作为输入 模型采用一些常量 数组和矩阵 二维数组的形式 模型的输出是另一个必须满足一些约束的二维矩阵 目标优化是最小化 目标
  • 我们可以将规范引用中未明确引用的内容应用到 C++ 标准吗?

    在 C 11 标准中 最接近的草案是 N3337 http www open std org jtc1 sc22 wg21 docs papers 2012 n3337 pdf 部分1 2 规范性引用文件 says 以下参考文件是必不可少的