c++ - SWIG——如何忽略模板化 C++ 函数?

标签 c++ templates swig

我有一个类似这样的 C++ 类:

namespace ns {
    template<class T>
    class Wrapper {
    public:
        bool operator==(const Wrapper<T>& rhs) const;  
        // Other methods
    private:
        T mData;
    };
}

我想用 SWIG/Python 包装它,但我不想包含相等运算符。我尝试了各种方法:

%ignore ns::Wrapper::operator==;
%ignore ns::Wrapper::operator==(const ns::Wrapper&) const;

我还了解了 T 可能代表的类(假设现在是数据类):

%ignore ns::Wrapper<Data>::operator(const ns::Wrapper<Data>&) const;
%template(WrappedData) ns::Wrapper<Data>;
%ignore WrappedData::operator==(const WrappedData&) const;

最佳答案

您可以使用以下选项之一 %ignore指令,必须在 Wrapper声明之前出现类(例如,在相应的 %include 指令之前):

  • %ignore ns::Wrapper::operator==;
  • %ignore ns::Wrapper<Data>::operator==;

关于c++ - SWIG——如何忽略模板化 C++ 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895113/

相关文章:

c++ - 是否可以在模板化类之外获取分配的模板类型?

go - 痛饮 + 去 : unsupported relocation for dynamic symbol

c++ - 如何将光标移动到 C++ 中最后打开的窗口(可能是弹出窗口)

c++ - Delphi 和 C/C++ DLL 结构与记录

c++ - 显式实例化类模板中的自动构造函数

c++ - 如何将多维映射从 c++ 转换为 perl 中的哈希

c++ - 是否有一个示例如何使用 SWIG 通过 go build 生成 C++ 建筑?

c++ - 在 Unix 上分离命令行输出(处理与用户交互)的方法是什么?

c++ - 计算Qt5中写入QDataStream的字节数

c++ - 访问在 C++ 模板中声明的常量