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

SWIG: Problems with inheriting from a template and function overloading

编辑: 好的,我尝试将我的代码缩减为示例,它似乎在小示例中有效。我尝试从小示例中重建错误。所以下面显示的示例不包含问题的原因。

我想用 swig 包装一个 class,它继承自 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);
      };
   }

For Derived swig generates 创建了两个重载包装器,一个使用 ::Base< float >::Pointer,另一个使用 ::Base< T >::Pointer。 T 未被 float 替换,因此无法编译,因为 T 未知。

你能给我一些建议吗?

也许你(我)让一些 using (using Base::create) 语句,所以 swig 也将它们包含在 Derived 中,但不会为它们解析 Type 参数。