传递Boost Python枚举作为参数
我在我的 BOOST_PYTHON_MODULE 中定义了
enum_<mytype>("mytype")
.value("one",1)
.value("two",2)
;
当我暴露一个包含参数类型为 mytype(其实就是一个整数)的函数的类时,比如:
void myfunc(mytype m) {
...
}
我收到了以下编译器警告:
解引用指针 'p.2311'(或者其他的)违反了严格别名规则
现在,这只是一个警告,而且在开启优化后,代码运行得非常好。
我可以安全地忽略这个警告吗?我是不是漏掉了什么?
谢谢
1 个回答
1
具体情况很难说,因为没有看到警告信息,但很可能是因为一些来自Python头文件的宏引起的。为了安全起见,编译使用Python(和Boost.Python)的代码时,可以加上-fno-strict-aliasing
这个选项。