我正在研究针对Java(以及更高版本的Python)的C ++绑定。
我的课程是这样的(例如:mymodule.h
)
namespace BaseNS {
class A {};
class B {};
namespace NestedNS {
class C {};
class D {};
};
};
使用命名空间功能(%nspace
或%feature("nspace")
)时,如下所示:
%module MyModule
%{
#include "mymodule.h";
using BaseNS;
%}
%feature("nspace");
%include "mymodule.h";
我得到以下Java绑定:
|- MyModule.java
|- MyModuleJNI.java
`- BaseNS
|- A.java
|- B.java
`- NestedNS
|- C.java
|- D.java
BaseNS
重命名为RenamedNS
?我尝试通过以下方式插入%rename
指令:
%rename (RenamedNS) BaseNS; // does not pick namespace
%rename (RenamedNS) ::BaseNS; // still does not work
作为替代方案,是否有一种方法可以将BaseNS
切掉,以产生如下所示的绑定:
|- MyModule.java
|- MyModuleJNI.java
|- A.java
|- B.java
`- NestedNS
|- C.java
|- D.java
(仍然保留NestedNS
,但从路径中删除BaseNS)。
谢谢。