我在这里阅读了如何FOOBAR
在 SWIG 中包装这个宏:
class foobar {
public:
static void method() {}
};
#define FOOBAR() foobar().method()
解决方案是将其包含在 SWIG 界面中:
void FOOBAR();
但是,假设我放弃()
了,所以我的宏是
#define FOOBAR foobar().method()
这仍然是我可以在 C++ 中使用的完全合法的宏。我该如何包装这个,所以我可以在 Python 命令行上说:
>>>FOOBAR
澄清一下,因为这似乎令人困惑。我故意选择不返回任何内容的方法。我这样做了,因此不考虑“它应该返回什么”的无关问题。但是,人们似乎仍然想考虑它。
好吧,在 C++ 中,FOOBAR
它是有意义的——它是一个特定的对象,我可以调用FOOBAR.someMethod()
. 我希望它在 Python 命令行上,它也是一个对象(等效的),它的行为相同,我也想调用FOOBAR.someMethod()
它并让它的行为与 C++ 中的相同。
很抱歉,但我认为,在 SWIG 的上下文中,上述解释是显而易见且不必要的,并且包含在缩写“wrap”中。