SWIG:从模板和函数重载继承的问题

时间:2015-11-10 16:30:08

标签: c++ matlab swig

编辑: 好吧我试图将我的代码减少到示例,它似乎在小例子中工作。我尝试从小例子重建错误。因此,下面显示的示例不包含问题的原因。

我想用swig包装一个继承自Matlab模板的类。

   template<class T>
   class Base {
   public:
      typedef Base<T>* Pointer;
      void create(typename ::Base< T >::Pointer src) {
      ... 
      };
   }
   class Derived : public Base<float> {
      //overloading because I hide it by overloading with other parameters
      // && using isn't working in the tool set.
      void create(typename ::Base< float >::Pointer src) {
         Base::create(src);
      };
   }

对于Derived swig generate会创建两个重载包装器,其中包含:: Base&lt; float&gt; ::指针和正在使用的指针:: Base&lt; T&gt; ::指针。 T不会被float替换,因此不会编译,因为T是未知的。

你能提出我可以尝试的任何建议吗?

1 个答案:

答案 0 :(得分:0)

也许你(我)让一些人使用(using Base::create)的陈述,所以swig也将它们包含在Derived中,但是没有为它们解析Type参数。