将boost python enum作为参数传递

passing boost python enum as parameter

本文关键字:参数传递 enum boost python      更新时间:2023-10-16

我定义了

enum_<mytype>("mytype")
    .value("one",1)
    .value("two",2)
;

in my BOOST_PYTHON_MODULE.

当我公开一个带有mytype类型形参(本质上是int型)的函数的类时,如:

void myfunc(mytype m) {
    ...
}

我得到以下编译器警告:

解引用指针'p.2311'(或其他)违反了严格混叠规则

现在,它只是一个警告,并且代码在启用优化后可以完美地工作。

我可以安全地忽略警告吗?我错过什么了吗?

谢谢

在没有看到警告的情况下很难确切地说出来,但很可能是由Python头文件中的一些宏引起的。为了安全起见,使用-fno-strict-aliasing .

编译使用Python(和Boost.Python)的代码。