Boost -在构建时关于解引用指针的警告

Boost - warning about dereferencing pointers when building

本文关键字:引用 指针 警告 于解 构建 Boost      更新时间:2023-10-16

我正在遵循Boost网站上的"入门"教程。我正在尝试使用以下命令构建单独编译的库:

./bootstrap.sh

然后

./b2

在构建过程中,我收到了很多(像数百)这样的警告:

./boost/...whatever.hpp:linenumber: warning: dereferencing pointer ‘...’ does break strict-aliasing rules

我想知道这是否是我这边的问题,如果我能做些什么来摆脱这些警告?

谢谢。

(Boost 1.48, Ubuntu 10.04.3 LTS)

Cellperformance声明严格混叠是:

[…一个由C(或c++)编译器做出的假设,解引用指向不同类型对象的指针永远不会引用相同的内存位置(即别名彼此)

当启用-fno-strict-aliasing和优化(-O2或更高)时,会出现此警告,因为编译器在访问(可能)别名内存时需要更加保守。这导致了更少的优化——编译器不能真正确保元素没有重叠(参见上面的文章中的例子)。

这不是一个你应该担心的警告——Boost开发人员可能已经意识到这一点,并且有很好的理由来解释为什么这样做是可以的。