我想換一個簡單的靜態模板函數這樣的一個模板靜態函數:不能完成與痛飲
namespace ns {
class A {
public:
template<typename T>
static void func() {}
};
}
與痛飲指令:
%template(func_type) ns::A::func<type>;
但我不斷收到:
Error: Undefined scope 'ns::A'
Error: Template 'ns::A::func' undefined.
我在this mailing list上發現了同樣的問題,但很遺憾沒有回覆。這是一個限制嗎?它需要一些特殊的操作嗎?
下面是幾行上述準備在.i文件粘貼:
%module example
%{
namespace ns {
class A {
public:
template<typename T>
static void func() {}
};
}
%}
%template(func_int) ns::A::func<int>;
要使用痛飲處理此只是做:
swig -c++ -tcl test.i
是的,這正是我做了,但我遇到了所述的錯誤。你試過這個嗎?你成功了嗎? – DarioP 2014-09-05 08:55:04
也許你必須用命名空間包裝(更新我的答案)。如果這沒有幫助,那麼你的.i中肯定還有其他的錯誤。也許擴展您的文章,以包括一個完整的,但* *最小* .i再現問題。 – Schollii 2014-09-05 13:27:13
完整的和最小的.i在問題中已經差不多了,但是我添加了它。我也嘗試了你的第二個建議,但沒有任何區別。 – DarioP 2014-09-05 15:42:01