Portable implementations of signed and unsigned 128-bit integers
Decimal is under active development and is not an official boost library.
This library is header only. It contains no other dependencies.
Simply #include
it and use it.
Boost.Decimal is tested natively on Ubuntu (x86_64, s390x, and aarch64), macOS (x86_64, and Apple Silicon), and Windows (x32 and x64); as well as emulated PPC64LE and STM32 using QEMU with the following compilers:
- GCC 5 and later
- Clang 5 and later
- Visual Studio 2017 (14.1) and later
- Intel OneAPI DPC++
Int128 provides 2 types:
namespace boost {
namespace int128 {
struct uint128_t;
struct int128_t;
} //namespace int128
} //namespace boost
These types operate like built-in integer types.
They have their own implementations of the Standard-Library functions
(e.g. like those found in <limits>
, <iostream>
, etc.).
The entire library can be conveniently included with #include <boost/int128.hpp>
The complete documentation can be found at: https://master.int128.cpp.al
[1] Donald E. Knuth, The Art of Computer Programming Volume 2 Seminumerical Algorithms, 3rd edition, 1998