标准是否指定哪些标头包含其他标头?

2024-01-13

我正在参加一个在线编码竞赛,我的想法是找到一个名称比<iostream>但包括<iostream>。好吧,直到现在我还没有成功,但这让我想知道:

标准是否指定哪些标头包含其他标头?

例如,关于<iostream> cplusplus http://www.cplusplus.com/reference/iostream/ states:

包含此标头可能会自动包含其他标头,例如<ios>, <streambuf>, <istream>, <ostream> and/or <iosfwd>.

然而,当我寻找<ios>不存在“此标头可能包含在<iostream>“。对于某些标头,我可以想象它们需要包含其他标头才能正常工作。如果是这种情况,我希望标准能够做出一些标头如何相互依赖的声明(例如,必须避免循环依赖)或者标准只是确保这种依赖关系不存在并且取决于实现?


关于哪些标头可以被其他标头包含的一般规则是:有一些标头被指定自动包含,除此之外,它取决于实现并且不需要记录。

17.6.5.1 一致的实现[一致]

17.6.5.2 标头 [res.on.headers]

1 C++ 头文件可以包含其他 C++ 头文件。 C++ 头文件应提供其概要中出现的声明和定义。概要中显示的包含其他 C++ 头文件的 C++ 头文件应提供出现在这些其他头文件概要中的声明和定义。

关于“在其概要中显示为包含其他 C++ 头文件”的规则适用于:

  • <utility>, <string>, <array>, <deque>, <forward_list>, <list>, <vector>, <map>, <set>, <unordered_map>, <unordered_set>, <queue>, <stack>, <algorithm>, <random>, <valarray>, <regex>包括<initializer_list>.
  • <bitset>包括<string>, <iosfwd>.
  • <iostream>包括<ios>, <streambuf>, <istream>, <ostream>.
  • <ios>包括<iosfwd>.

然而,尽管例如<ios>显示为包括<iosfwd>,实现可能能够实现要求,而无需实际包含它,并且根据 [res.on.headers],这很好。在大多数情况下,只要声明的函数和类型可访问,实现是否包含其他标头都没有任何区别。

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

标准是否指定哪些标头包含其他标头? 的相关文章

随机推荐

  • Kotlin:在界面中指定输入约束

    假设我有以下界面 interface MathThing fun mathFunction x Int 假设我想对该函数施加的约束是 x 不能为负数 如何确保每次 MathThing 类型的对象不满足此 或任何其他任意 条件时 都会引发 自
  • Tampermonkey GM.xmlHttpRequest 不是函数

    我正在努力解决我的脚本问题 无论我尝试做什么 GM xmlHttpRequest 都会抛出错误 不是函数 我的其余代码工作正常 这是我的代码的删节版本 UserScript name FUT20 Autobuyer Menu namespa
  • 如何在应用程序暂停或销毁时停止服务,但在切换到新活动时不停止服务?

    目前我有一个Service我用它在应用程序打开时在后台播放声音文件 public class BackgroundSoundService extends Service MediaPlayer player public IBinder
  • 按(可能非唯一)值对哈希表进行排序

    我有一个将字符串映射到整数的哈希表 字符串是唯一的 但多个字符串可能会映射到同一个整数 我天真的方法是简单地将 Hashtable 反转为由 Hashtable 的值索引的 SortedList 但问题是 只要两个 Hashtable 的字
  • 适用于 iOS 的 HTML 编辑器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐任何用于编辑 HTML 的原生 iOS 组件吗 我找不到任何谷歌搜索 文字学 http www textasticapp co
  • 从 td 标签获取 href 属性链接 BeautifulSoup Python

    我是 Python 新手 有人建议我使用 Beautiful soup 进行报废 但我遇到了一个问题 即根据第 4 列中的年份从 td 标签第 2 列中获取 href 属性 table class tableFile2 tr th widt
  • 如何断言 Rails 集成测试中没有路由匹配?

    我有一个 Rails 3 集成测试来测试我的路线 它包含以下测试 assert routing category url path foo url path controller gt foo action gt show category
  • 我想在数组中添加项目

    我正在尝试在空数组中添加项目 我正在使用 Dio 包发送 post 请求 所有其他代码都工作正常 但我在这里对这个问题很困惑 我拿了一个空数组 然后我尝试 setState 函数将项目添加到空列表中 每次按下列表时我都会打印该列表 但我得到
  • c++ 将没有时区的postgres时间戳转换为time_t

    我使用 libpq 库从 C 连接到 postgreSQL 我从 postgreSQL 请求并获取日期 没有时区的时间戳 但结果有一个我不知道如何修复的偏移量 Postgres 表 id date integer timestamp wit
  • Redis lua脚本不工作

    我创建了一个 redis lua 脚本来根据关键数据类型执行命令 local keyType redis call TYPE KEYS 1 if keyType string then return redis call GET KEYS
  • 有没有好的 Perl 自动化测试套件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一些好的 Perl 自动化测试套件框架吗 这实际上取决于您想要做什么 但这里有一些背景知识
  • 如何在 Android 中创建两个视图,每个视图使用 50% 的高度,除非其中一个较小?

    想象一个完整的 Android 设备屏幕 我希望它分为两个部分 上半部分包含文本 该文本可能大于可用空间 或不大于可用空间 因此文本将滚动 即 ScrollView 内的 TextView 下半部分包含一个 MapView 控件 具体看一些
  • joda - 解析 RSS 项目中 pubDate 的时区

    我正在使用 Joda 解析 RSS 项目中的 pubDate 日期必须采用 RFC 822 格式 http feed2 w3 org docs error InvalidRFC2822Date html http feed2 w3 org
  • JOGL白色质感?

    我正在尝试加载 Earth png 并将其放置在三角形上 图像尺寸为 256x256 我已经按照在线教程进行了几个小时的研究 但三角形仍然保持白色 任何人都可以指出我正确的方向吗 import java awt Frame import j
  • 如何在 C# 中生成 HMAC 签名

    我正在尝试与第 3 方 API 集成 该 API 需要对我的请求正文和一些变量进行加密 并使用 HMAC 签名进行授权 他们为我提供了示例 JavaScript 代码 function generateHMACSignature partn
  • 一般错误:1364 字段“user_id”没有默认值[重复]

    这个问题在这里已经有答案了 我试图将 user id 分配给当前用户 但它给了我这个错误 SQLSTATE HY000 General error 1364 Field user id doesn t have a default valu
  • Oracle RAW id 列和 JDBC

    我正在尝试开发一个调用 Oracle 11g XE 数据库的简单 Java servlet 我提供的数据库对所有表上的 ID 使用 RAW 列类型 最初 我尝试从 JDBC 获取数据 并对返回的 VARBINARY 字节数组进行 base6
  • 在 Firebase Firestore 中执行简单的选择查询

    如何在 Firebase Firestore 中执行简单搜索以检查集合中是否存在记录 我在文档中看到过这段代码 但它并不完整 Create a reference to the cities collection var citiesRef
  • 等于/等于和 == 运算符之间的区别?

    有什么区别a b and a Equals b 假设类型a and b是参考类型 在 Java 中 总是会比较identity 即两个值是否是对同一对象的引用 这也称为引用相等 Java 没有任何用户定义的运算符重载 在 C 中 这取决于情
  • 标准是否指定哪些标头包含其他标头?

    我正在参加一个在线编码竞赛 我的想法是找到一个名称比