C ++中包含的C头中的前向声明枚举

时间:2010-12-31 15:37:29

标签: c++ c linkage

我有C头向前声明枚举。显然,这在C ++中是不可能的,因此所有形式的预处理器包装

extern "C" {
  #include <header.h>
}

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

有些相关问题: 71416 681243

1 个答案:

答案 0 :(得分:0)

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

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