c++ - boost::bind 打破了严格的别名规则?

标签 c++ boost-bind strict-aliasing

使用Boost 1.43和GCC 4.4.3,代码如下

boost::bind(&SomeObject::memberFunc, this, _1));

生成以下警告

boost/function/function_base.hpp:321: warning: dereferencing type-punned pointer will break strict-aliasing rules

在不设置 -fno-strict-aliasing 的情况下消除这些警告的正确方法是什么?

最佳答案

只是为了记录,我对使用 GCC 4.4.3 的 boost::bind for Google's Native Client 发出了相同的警告。将 boost 从 1.41.0 版本升级到 1.47.0 后警告消失。

关于c++ - boost::bind 打破了严格的别名规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3042146/

相关文章:

c++ - MATLAB Coder 函数在 2014a 中未定义

c++ - 是否可以检测指向成员函数的指针?

c++ - 如果函数指针不需要 & 符号,为什么 boost::bind 需要一个?

c - C 中的虚拟继承示例,利用未定义的行为?

c++ - 如何从模板参数(std::vector 和普通指针)中提取 value_type?

c++ - C++11 中的示例函数处理时间装饰器

c++ - 如何在 C++ 中安全地销毁 Posix 线程池

c++ - 使用模板和 boost 功能

c++ - gcc 4.6.1 错误的严格别名警告

c - 指针对齐和别名