1

我有向前声明枚举的 C 标头。显然,这在 C++ 中是不可能的,所以所有的预处理器都封装了表单

外部“C”{
  #include <header.h>
}

不会有帮助的。有什么方法可以将这些头文件包含在 C++ 翻译单元中,而无需我编辑 C 头文件?幸运的是,在这种情况下修改 C 标头以避免前向声明相对容易,但这让我觉得这是一个非常重要的问题。一般来说,我认为总是可以从 C++ 链接到 C 库,但在某些情况下,无法包含标头似乎使这种做法变得不切实际。

一些相关问题: 71416 681243

4

1 回答 1

0

前向声明的枚举在 C++0x 中可用。如果您的编译器还不支持它,那么将枚举包装在命名空间中将避免违反 ODR。

PS 一个很好的解释:http ://www.devx.com/cplus/Article/42478/1954?pf=true

于 2010-12-31T15:45:24.207 回答