是否有任何C++工具可以检查常见的未指定行为?

Bil*_*eal 10 c++ unspecified-behavior

通常人们会对正在编码的特定平台做出假设,例如,有符号整数使用两个补码存储,或者那个(0xFFFFFFFF == -1)或那些性质的东西.

是否存在可以检查代码库以查找最常见的违反这类事件的工具(对于我们这些想要可移植代码但没有奇怪的非二进制补充机器的人)?

(我上面的示例特定于有符号整数,但我也对其他错误(例如对齐或字节顺序)感兴趣)

Cas*_*Cow 4

您可能希望打开不同级别的编译器警告,并且可以将警告视为错误。

如果您知道在代码中的各个点做出了其他假设,则可以断言它们。如果您可以使用静态断言来做到这一点,您将在编译时失败。