簡體   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