无法获取 wig %ignore 以忽略命名空间中的类,从而导致编译错误
Cant get swig %ignore to ignore class in namespace resulting in compile error
我在标头中声明了一个类,该类在运行 swig 时给出编译错误:
namespace nsA
{
namespace nsB
{
#define DISABLE_COPYING_AND_ASSIGNING(ClassName) ClassName(const ClassName&) = delete;
ClassName& operator=(const ClassName&) = delete
class myClass
{
public:
DISABLE_COPYING_AND_ASSIGNING(myClass);
myClass(myClass_t opaque);
myClass(myClass&& other);
~myClass();
uint32_t myMethod() const;
private:
myClass_t mOpaque;
};
enum class myEnum
{
A= 0,
B= 1
};
}
}
如果我将此类保留在命名空间中,则会收到此错误:
错误 C2280 'nsA::nsB::myClass::myClass(const nsA::nsB::myClass &(':尝试引用已删除的函数
这是我在 swig 配置文件中尝试过的内容:
%ignore nsA::nsB::myClass; // Doesn't work
%ignore *myClass; // Doesn't work
我也尝试忽略所有内容并取消忽略命名空间中的其他元素,但也不起作用:
%ignore nsA::nsB; // This works to ignore the entire namespace
%rename("%s") nsA::nsB::myEnum; // This does not work to re-include the struct
- 为什么错误指向 nsA::nsB::myClass::myClass 而不是 nsA::nsB::myClass?
- 关于导致 swig 导致此问题的任何提示 错误?
- 尝试忽略/取消类时我做错了什么 在啪?
这实际上不是命名空间的问题。SWIG试图在包装的代码中调用nsA::nsB::myClass
的复制构造函数(称为nsA::nsB::myClass::myClass
(。
据我所知,SWIG 无法处理仅移动类。有关更新,请参阅 https://github.com/swig/swig/issues/999。
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译