有没有办法找出哪些STL头文件没有被直接包含?

2023-12-10

我们的产品使用C++作为编程语言。使用 C++ STL 的一个恼人的问题是我们忘记包含必要的头文件,因为该文件可能已包含在其他一些 STL 头文件中,构建会通过。例如,

在使用Xcode的Mac平台上,如果我使用std::auto_ptr不包括memory.h但包括iostream.h,构建会通过,但在Android平台上会失败。

但我不想将代码移至 Android 来对每个代码更改提交进行构建检查。那么,有什么办法可以避免这个问题吗?

编辑1: 我知道最好的解决方案是不要忘记包含标题。但开发人员也会犯错误。那么有没有什么工具可以帮助检查呢?

编辑2: Seams没有理想的解决方案,所以我将使用vim脚本在我的编辑器中检查它,解决方案类似于https://github.com/vim-scripts/vim-cpp-auto-include/blob/master/ftplugin/cpp_auto_include.vim


您可以使用common_includes.h文件,其中包含所有必需的文件,并在您需要的任何地方包含该文件。这将简化情况,并有助于避免忘记包含某些文件。至少你只会忘记一次:)。

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

有没有办法找出哪些STL头文件没有被直接包含? 的相关文章

  • .Net Core 中 String 默认不可序列化吗?

    我正在查看其他的 Fortify 静态分析安全测试 SAST 扫描报告 以识别和抑制误报 应用程序框架是C NET Core SAST 报告部分内容如下 Method1 在第 111 行将不可序列化的对象存储为 HttpSessionSta
  • 到底什么是“位填充”或“填充位”?

    我只是在互联网上找不到任何关于 位填充 真正含义的详细解释 并且在 Stack Overflow 上也没有找到与位填充相关的线程的任何答案 我还搜索了 ISO 9899 1990 其中提到了 位填充 但没有根据我的需要进行解释 我在网上找到
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • 根据另一个列表的内容对列表进行排序

    我有一个包含整数列表的列表和另一个包含同时包含整数和字符串的类的列表 我想做的是按字母顺序对列表进行排序 将第一个列表中存在的条目放在前面 这是我的代码和预期输出 using System using System Collections
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • 输入缓冲区刷新

    考虑下面的代码 include
  • 使用 microsoft word.interop 删除 Word 文档中的空白页

    我创建了一个Word文档 它使用以下命令生成动态内容词互操作 它有一些分页符之间使用 我面临的问题是 此分页符会创建我不想向用户显示的空白页面 在某些情况下 我需要在那里添加这些分页符以维护页面布局 因此我无法考虑删除这些分页符 但我想要的
  • 如何在单独的类库中管理客户端上下文对象?

    我正在尝试创建一个库 类库 对于共享点 它将拥有所有共享点 dll 来与共享点服务器交互上传文件 文档并创建文档库和文档集 现在这个库可以被使用客户端 例如 Web 应用程序 asp net webform 或 mvc 或控制台应用程序或
  • tcmalloc/jemalloc 和内存池之间有什么区别(以及选择的理由)?

    tcmalloc jemalloc是改进的内存分配器 还引入了内存池以更好地分配内存 那么它们之间有什么区别以及在我的应用中如何选择它们呢 这取决于您的程序的要求 如果您的程序有更多的动态内存分配 那么您 需要从可用的分配器中选择一个内存分
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • XPath 选择具有特定属性值的元素?

    我在使用 XPath 选择节点时遇到问题 我将展示一个示例 由于实际数据量很大 xml 文件被缩短了 这是 XML 的子集
  • C++ 静态工厂构造函数

    我正在进行模拟 它需要创建多个相当相似的模型 我的想法是有一个名为 Model 的类并使用静态工厂方法来构造模型 例如 模型 createTriangle or 模型 createFromFile 我从以前的 java 代码中汲取了这个想法
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • Facebook Graph API“/userid/feed”返回空白

    我正在使用 Facebook C SDK 但似乎无法使用 Graph API 获取反馈数据 我已从用户那里获得了以下扩展权限 范围 离线访问 publish stream publish checkins create event read
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 访问 Visual Studio 扩展中的当前代码窗格

    我正在编写一个 Visual Studio 2010 扩展 在代码视图中带有右键单击菜单 我希望能够从菜单项事件处理程序检查当前代码 但无法在对象模型中找到执行此操作的位置 如何在 Visual Studio 扩展中访问当前窗口中的代码 E
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind
  • AddressAccessDeniedException :无需 netsh 即可解决它?

    我遇到了异常AddressAccessDeniedException因为我的processus没有注册URL的权限 我首先以管理员身份运行我的程序 好的 它成功了 但我现在想要分发我的应用程序 并且我希望每个用户都能够运行它 而不必成为管理

随机推荐

  • IE 11 的模板标签 polyfill - 不适用于表 tr 和 td

    我使用polyfill js 它允许处理不支持它的浏览器的标签 上的polyfill源代码jsfiddle Source question 但我注意到 在 IE 11 中 这个 polyfill 无法与包含以下内容的模板一起使用 tr an
  • 使用 Visual Studio 2010 和 HG 进行版本控制

    最近 我和我的团队获得了一个用于版本控制的 HG 存储库 因为这将使我们的应用程序开发变得更容易 更好 我们使用 Visual Studio 2010 和 c 所有项目都处于版本控制之下 不幸的是 当我们其中一个人提交时 另一个人在打开解决
  • 正则表达式在所有标点符号之间添加空格

    我需要在字符串中的所有标点符号之间添加空格 Hello World gt Hello World It s 9 00 gt It s 9 00 1 B 3 D gt 1 B 3 D 我认为正则表达式是正确的方法 可以匹配所有非标点符号 a
  • Spark 中的倾斜

    我有一个数据集 我想按特定键 clientID 进行分区 但某些客户端产生的数据比其他客户端多得多 Hive 中有一个功能称为 列表分桶 由 调用倾斜于 专门针对这种情况 但是 我找不到任何迹象表明 Spark 支持此功能 或者如何 如果支
  • Android 开发 - 转换为 Dalvik 格式失败,错误 1

    所以我第一次涉足这个领域 我按照说明安装了 android SDK 和 eclipse 插件 我创建了一个空白的新 android 项目 但出现以下构建错误 2011 01 08 16 34 55 xxx Dxno classfiles s
  • Maximo 公式可以返回 null 吗?

    在 Maximo 7 6 1 1 中 我在持久字段上有一个属性公式 称为WORKORDER X 字段类型为十进制 长度为18 小数位为10 该公式的目的是做到这一点 如果 WOSERVICEADDRESS LONGITUDEX 不为空 则使
  • Java中System.out.println的含义是什么?

    这是静态的吗println函数于out班级来自System命名空间 namespace System class out static println 我该如何解释这个名字 这个函数在 JRE 中的什么地方定义的 在java lang Sy
  • 在 groovy 脚本中从 ant - sshexec 获得格式良好的输出

    我的问题是 ant 任务的输出总是在开头有一些 ssh exec 信息文本 我可以抑制 禁用它吗 到目前为止我的代码 def ant new AntBuilder variable definition ant sshexec host h
  • OS X 上的 Matplotlib 问题(“ImportError:无法导入名称 _thread”)

    在过去几天的某个时候 Matplotlib 停止在 OS X 上为我工作 这是我尝试时遇到的错误import matplotlib Traceback most recent call last File my path to script
  • “dotnet Restore”失败,并显示“SSL 对等证书或 SSH 远程密钥不正常”

    我刚刚按照这里的程序进行操作 https www microsoft com net core ubuntu 这就是输出dotnet restore log Restoring packages for home test project
  • 使用 Django 的 ORM 的模型继承方法

    我想将事件存储在我正在闲逛的 Web 应用程序中 并且我非常不确定每种方法的优缺点 广泛使用继承或以更温和的方式使用继承 Example class Event models Model moment models DateTimeFiel
  • 如何安装肥皂扩展?

    如何安装肥皂 我收到这个错误 致命错误 在第 16 行 home user mysite com path to file php 中找不到类 SoapClient 我在 DreamHost 中托管我的网站 他们不支持任何第三方安装 UPD
  • 如何连接 Web API Castle Windsor DI 代码的各个部分?

    如何连接 Web API Castle Windsor DI 代码的各个部分 以便控制器的路由选择正确的接口实现 Note 经过几次错误的开始 死胡同和部分胜利 here and here and here 我将尽快给予最大的赏金500点
  • 设置从包含注释的 json 加载的对象的属性值

    当从 json 文件加载对象时 通常可以设置属性值并将文件写回 如下所示 manifest gc manifestPath ConvertFrom Json AsHashtable manifest name manifest name s
  • 在 DatePIcker 中设置 MinDate 和 MaxDate

    创建应用程序 其中我显示 DatePicker 现在我想设置 DatePicker 的 MinDate 是前两年 最大日期仅是未来两年 选择应基于当前日期 假设当前日期是 23 11 2016 因此 datepicker 应显示日期直到 2
  • iPhone 无法通过 WiFi 连接到本地 HTTP 服务器

    使用以下命令时 我无法打开在 iPhone 6s iOS 9 2 中的 MacBook 上运行的 HTTP 服务器提供的静态 HTML 页面 无论是在 Safari 还是 Chrome 浏览器中 http ipNumberOfMyServe
  • PHP 禁用输出缓冲

    我已经关掉了输出缓冲在 PHP 中通过设置output buffering off在 php int 中 但是当运行这样的简单代码时
  • 二维数组传递给函数

    我一直在读这个question但我无法获得解决问题的结果代码 我应该如何改变它才能使其发挥作用 void print2 int array int n int m main int array 4 1 2 3 4 5 6 7 8 int a
  • 使用通用参数执行远程通用 Powershell 脚本

    我需要编写一个 Powershell 脚本 我们称之为 控制器脚本 它能够调用传递通用参数的通用远程 Powershell 脚本 控制器脚本接受主机名 凭据 远程脚本路径和远程脚本参数 作为哈希表 作为参数 相反 远程脚本可以是接受任何字符
  • 有没有办法找出哪些STL头文件没有被直接包含?

    我们的产品使用C 作为编程语言 使用 C STL 的一个恼人的问题是我们忘记包含必要的头文件 因为该文件可能已包含在其他一些 STL 头文件中 构建会通过 例如 在使用Xcode的Mac平台上 如果我使用std auto ptr不包括mem