在什么条件下C++头是不可传递的
Under what conditions are C++ headers not transitive?
我刚刚遇到一个条件,我#包含了一个标头,我遇到了编译错误,需要我#包含原始标头中已经包含的标头。
标题包含以下内容:
#pragma once
#include <atlbase.h>
#include <atlcom.h>
#include "itestobj.h"
extern "C" ITestObj* WINAPI GetTestObj();
然后,当我针对这些错误进行编码时,我会得到一堆与ATL相关的编译错误,这些错误通过在C++文件中除了上面的头之外还包括atlbase.h
和atlcom.h
来解决。
为什么没有像通常情况下那样包含这些标头?
很可能,这些标题中至少有一个包含了您在帖子中显示的文件。由于#pramga once
告诉编译器只包含它一次,所以它停止,您不会得到所有声明。
相关文章:
- 为什么简单的算术减法在"if"条件下不起作用?
- 在什么条件下使用 std::memcpy 在对象之间复制是安全的?
- 改进简单条件下C++样式
- 唤醒多个线程以在每个条件下工作一次
- "is defined"宏检查及其调用必须处于不同的条件下吗?
- 在if条件下,右或左改变值的相等性检查是否有任何区别
- C++代码在 for 循环的条件下给出运行时错误,而如果它被具有相同意义的代码替换,则编译正确
- 在 constexpr-if 条件下比较 constexpr 函数参数会导致错误
- 轮班操作在条件下使用的说明
- 2维度传递(缺少下标,大小未知)
- 在不同条件下无法访问我的向量变量
- 在某些条件下最大化 GCD
- 如何更改此空隙函数,以便在特殊条件下返回一个生成的字符串
- 在if-Statement条件下与分配有关的错误
- 如何正确使用“ sizeof”操作员在循环的条件下正确使用
- 提升::MSM 检查保护条件下的状态转换
- C++在 IF 条件下递增
- C 在循环条件下忽略
- 在相同条件下扩展多个"if"可提高性能
- 在什么条件下C++头是不可传递的