我们有一个供应商为我们提供了C++图书馆和信头,我正试图用SWIG包起来。他们似乎对预处理指令太聪明了:
// top.h
#define DECLARE_WITH_COMMA(a) a,
时和时
// foo.h
#include "top.h"
#define MY_TYPES(d)
d(One)
d(Two)
d(Three)
NumElems
enum MyTypes {
MY_TYPES(DECLARE_WITH_COMMA)
};
当我尝试运行SWIG(2.0.4版)关于“foo.h”的版本时,
foo.h:12: Error: Syntax error in input(1).
因此,我的问题是,鉴于我可能不想改变 供应商供应信头,我有什么选择呢?