bounded-integer:旨在替换所有内置整数的C ++库

时间:2024-04-09 19:54:48
【文件属性】:
文件名称:bounded-integer:旨在替换所有内置整数的C ++库
文件大小:278KB
文件格式:ZIP
更新时间:2024-04-09 19:54:48
C++ 设计决策 到目前为止的情况 由于对边界的要求不严格,C ++中的内置整数类型( int , unsigned , long long等)大多不可用。 cstdint中定义的类型更好,因为它们为您提供了更强大的保证。 但是,有符号和无符号类型之间的整数比较是无效的。 cstdint整数仅仅是typedef,因此继承了相同的残破性。整数算法也被破坏。有符号的溢出调用未定义的行为,而无符号的溢出给出以上限+1为模的结果。 已经进行了许多尝试来解决这种情况。 从抽象的意义上讲,我们通常只需要一个“整数”就可以进行数学运算并获得期望的结果,而不管其值如何。但是,尝试用*或BigInt类型替换所有整数类型会增加每次计算的开销,这在许多域中是不可接受的。大多数实现都认识到这一事实,但是尝试通过以检查整数的形式增加较少的开销来解决此问题。它们照常执行算术运算,但是如果结果超出范围,则典型的实现将引发异常

网友评论