Horde3d声称可以使用C“样式”接口(interface)。但是由于这些错误,我无法包含编译C源代码的 header :
..../../horde3d/SDK_1.0.0_Beta5/Horde3D/Bindings/C++/Horde3D.h:127: error: nested redefinition of ‘enum List’
由于这些声明:
....
struct H3DOptions
{
/* ... */
enum List
{
MaxLogLevel = 1,
MaxNumMessages,
TrilinearFiltering,
....
};
...
};
struct H3DStats
{
/* ... */
enum List
{
TriCount = 100,
BatchCount,
LightPassCount,
...
};
};
....
由于Horde3d确实是用C++开发的,因此标识符列表通过包含struct来限定。这似乎在C中不可用。除了重写 header 之外,是否存在一些解决方法?
最佳答案
这是有目的的。 C++标准的附录C说明:
显然,委员会仅考虑了有效的C代码如何作为C++工作,而不考虑使用新功能的C++代码仍然是有效的C语言。