C++ 14 添加于 Boost 1.69.0
本次发布
依赖项
safe_numerics
C++ 中的算术运算不能保证产生正确的数学结果。这是从 C 早期继承下来的特性。int、unsigned int 等类型的行为被设计成与底层硬件紧密映射。计算机硬件将这些类型实现为固定数量的比特。当算术运算的结果超出此比特数时,结果是未定义的,通常不是程序员所期望的。C++ 程序员有责任确保此行为不会导致程序出现错误。本库实现了这些数据类型的特殊版本,它们与原始版本行为完全相同,**除了**这些运算的结果都会被检查,以确保在尝试存储未定义运算结果的任何时候都会抛出异常。
注意:这是 CPPCon 上各种演示的主题。
第一个是一个简短的版本,它给出了该库的主要动机,并进行了大肆宣传。有趣且适合高层管理。https://www.youtube.com/watch?v=cw_8QkFXZjI&t=1s
第二个更深入,因为它涉及了一个真实世界的案例研究,其中触及了该库的大多数重要方面。https://www.youtube.com/watch?v=93Cjg42bGEw。
最后,对于那些仍然喜欢文字的人来说,还有投入了大量精力的文档。http://htmlpreview.github.io/?https://github.com/robertramey/safe_numerics/master/doc/html/index.html
如果您使用此库并觉得它有用,请给一个星。我需要动力!!!