On Monday, July 27th, 2026 at 8:49 AM, John Maddock via Boost <boost@lists.boost.org> wrote:
First off many thanks to Matt for contributing this library, this is a fairly quick "drive by" review, hopefully others will delve deeper, although as noted below that's hardly needed, given that the interface is pretty much fixed ahead of time.
Other questions you might want to answer in your review are: - What is your evaluation of the design?
It's an integer, there's not much to discuss to be honest. Indeed for an integer type, it's almost overly-feature complete, but complaining about that is churlish to be honest.
One random question: I wonder if any consideration was given to making integers with checked or saturating operations separate types? I appreciate that this is NOT the way the standard has gone, but it looks useful to me, maybe that's a whole other library though? Likewise while we're on the subject of providing a poly-filler, some of the algorithms (<numeric> for example) could usefully be extended to all the integer types (as per C++26), but again that looks like another library to me.
I have had the same thoughts, and that library can be found here: https://github.com/cppalliance/safe_numbers. As always, I would appreciate hearing your thoughts on that one.
While on the subject of completeness, I'm pleased to see device support (CUDA/Sycl) straight out of the box. This is not necessarily a question for Matt, but I'm wondering if there might be any good example algorithms that would make use of this and provide some kind of benchmark and/or indication of when using parallel computing is actually useful?
Yes, I can improve this section. The initial reason for GPU support was to get Boost.Decimal working on GPU (CUDA support will ship in the next Boost release in a few weeks). CUDA somewhat recently added a 128-bit integer support to their platform so they must have some level of demand. SYCL and spir64 have no such support.
- What is your evaluation of the implementation? Only a very quick look, but Matt knows what he's doing, and this library has been used out in the wild for a while now. - What is your evaluation of the documentation? Excellent and very easy to read. - What is your evaluation of the potential usefulness of the library?
What can I say, in some ways this is a poly-filler library which may not be needed... or may be essential depending on your platform/compiler.
In any case I vote to ACCEPT this library.
I hope others will take the time to look through this too.
Best, John Maddock.
Thank you for taking the time to review John. Matt