设计决策
到目前为止的情况
由于对边界的要求不严格,C ++中的内置整数类型( int , unsigned , long long等)大多不可用。 cstdint中定义的类型更好,因为它们为您提供了更强大的保证。
但是,有符号和无符号类型之间的整数比较是无效的。 cstdint整数仅仅是typedef,因此继承了相同的残破性。整数算法也被破坏。有符号的溢出调用未定义的行为,而无符号的溢出给出以上限+1为模的结果。
已经进行了许多尝试来解决这种情况。
从抽象的意义上讲,我们通常只需要一个“整数”