我可以禁止 class/function 包含在 "truly lazy" SWIG 接口文件中吗?

Can I inhibit class/function inclusion in a "truly lazy" SWIG interface file?

我已经使用 SWIG tutorial 中的 "truly lazy" 方法成功地为 C# 包装了一个 C++ 库。它看起来像这样:

%module example
%{
/* Includes the header in the wrapper code */
#include "header1.h"
#include "header2.h"
%}

/* Parse the header file to generate wrappers */
%include "header1.h"
%include "header2.h"

但是,这包括一两个方法和 class我不想要的方法。我可以禁止在 %include 之后包含 class and/or 方法吗?比如添加:

%ignore Math.functionNotToInclude(int x, int y);

是的,您可以,但是您将 %ignore 指令放在 %include...

之前
%ignore functionNotToInclude; // note, not the whole signature
%include "header2.h"

有关详细信息,请参阅 SWIG 3.0 手册中的 "Simple renaming of specific identifiers"。 (忽略被认为是重命名的一种特殊情况。)