繁体   English   中英

如何使用Swig从C ++包装最终的Tempate类?

[英]How to wrap final tempate class from C++ using swig?

我正在尝试将标记为final的模板从C ++包装为C#,但没有成功。 Swig会说“未定义模板'Test'”

如果我删除了final关键字但标头不在我的控制之下,则该方法有效。

%module SwigTest
template <typename T>
class Test final
{
    public:
    T a;
};
%template(TestBool)  Test <bool>;

最终效果是否会以任何方式影响名称? 我试过了

%template(TestBool)  Test final <bool>;

和类似的组合,但没有成功。

看起来SWIG final还不了解。 不过,您可以使用SWIG中的预处理器来解决此问题:

%module SwigTest

#define final

template <typename T>
class Test final
{
    public:
    T a;
};
%template(TestBool)  Test <bool>;

这将不会产生负面影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM