Checked integer math types and operations.
|Copyright||Copyright © 2015, Thomas Stuart Bockman|
|Authors||Thomas Stuart Bockman|
|Registered by||Thomas Stuart Bockman|
To use this package, put the following dependency into your project's dependencies section:
Checked integer math module for the D Programming Language
As with many other languages (C, C++, Java, etc.), D's built-in integer data types are quite difficult to use correctly.
It is tempting to think of
int, for example, as if it were an actual mathematical integer. Doing so, however leads to buggy code due to unintuitive behaviour like:
- Wrapped overflow
- Reinterpretation of signed values as unsigned in mixed expressions
Floating Point Exceptions which aren't
Exceptions and have nothing to do with floating point
- Formally "undefined behaviour" with some inputs for various operations
checkedint module provides alternative operations and types that protect the user from most difficulties of this sort, while maintaining good performance (provided that inlining and optimizations are enabled).
The main downsides to using
- Some added friction when interfacing to non-
- Slower compilation and larger binaries.
dub build -b docs to generate more extensive documentation for this package.
This library is available as a DUB package: http://code.dlang.org/packages/checkedint