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

标签 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 generates 创建了两个重载包装器,一个使用::Base< float >::Pointer,另一个使用::Base< T >::Pointer。 T 未被 float 替换,因此无法编译,因为 T 未知。

你能给我一些建议吗?

最佳答案

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

关于c++ - SWIG:从模板继承和函数重载的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634858/

相关文章:

c++ - 变量的常量及其生命周期

matlab - matlab中具有季节分量的最小二乘法

java - 将 DLL 包装成 Java

c# - 我如何将 C# string[] 编码(最好在 SWIG 中)到 C++ string*?

java - 如何诊断 Windows Vista 中的 Java JNI EXCEPTION_ACCESS_VIOLATION 错误

c++ - 摆脱 win32 中的命令提示符窗口

c++ - 计算c++密码程序的循环

c++ - 编译器如何处理 a[i] 其中 a 是数组?如果 a 是一个指针呢?

MATLAB 编译器处理来自不相关工具箱的 mcc.enc

matlab - 像 MATLAB 一样强制刻度的指数格式自动执行