Hubs, intervals and math
During Q1 2026, I’ve been working in the following areas:
boost::container::hub
boost::container::hub is a nearly drop-in replacement of
C++26 std::hive sporting a simpler data structure and
providing competitive performance with respect to the de facto reference implementation
plf::hive. When I first read about std::hive,
I couldn’t help thinking how complex the internal design of the container is, and wondered
if something leaner could in fact be more effective. boost::container::hub critically relies
on two realizations:
- Identification of empty slots by way of
std::countr_zerooperations on a bitmask is extremely fast. - Modern allocators are very fast, too:
boost::container::hubdoes many more allocations thanplf::hive, but this doesn’t degrade its performance significantly (although it affects cache locality).
boost::container::hub is formally proposed for inclusion in Boost.Container and will be
officially reviewed April 16-26. Ion Gaztañaga serves as the review manager.
using std::cpp 2026
I gave my talk “The Mathematical Mind of a C++ Programmer” at the using std::cpp 2026 conference taking place in Madrid during March 16-19. I had a lot of fun preparing the presentation and delivering the actual talk, and some interesting discussions were had around it. This is a subject I’ve been wanting to talk about for decades, so I’m somewhat relieved I finally got it over with this year. Always happy to discuss C++ and math, so if you have feedback or want to continue the conversation, please reach out to me.
Boost.Unordered
- Written maintenance fixes PR#328, PR#335, PR#336, PR#337, PR#339, PR#344, PR#345. Some of these fixes are related to Node.js vulnerabilities in the Antora setup used for doc building: as the number of Boost libraries using Antora is bound to grow, maybe we should think of an automated way to get these vulnerabilities automatically fixed for the whole project.
- Reviewed and merged PR#317, PR#332, PR#334, PR#341, PR#342. Many thanks to Sam Darwin, Braden Ganetsky and Andrey Semashev for their contributions.
Boost.Bimap
Merged
PR#31 (std::initializer_list
constructor) and provided testing and documentation for this new
feature (PR#54). The original
PR was silently sitting on the queue for more than four years and it
was only when it was brought to my attention in a Reddit conversation that
I got to take a look at it. Boost.Bimap needs an active mantainer,
I guess I could become this person.
Boost.ICL
Recent changes in libc++ v22 code for associative container lookup have resulted in the breakage of Boost.ICL. My understanding is that the changes in libc++ are not standards conformant, and there’s an ongoing discussion on that; in the meantime, I wrote and proposed a PR to Boost.ICL that fixes the problem (pending acceptance).
Support to the community
- I’ve been helping a bit with Mark Cooper’s very successful Boost Blueprint series on X.
- Supporting the community as a member of the Fiscal Sponsorship Committee (FSC).
All Posts by This Author
- 04/02/2026 Hubs, intervals and math
- 01/18/2026 Containers galore
- 10/09/2025 Working on Boost.Bloom roadmap
- 07/01/2025 Boost.Bloom ready for shipping in Boost 1.89
- 04/08/2025 New Boost library proposal and a talk on how to make C++ ranges faster
- 01/05/2025 New container in Boost.PolyCollection, additions to Boost.Mp11 and more
- 10/11/2024 Joaquín's Q3 2024 Update
- 07/06/2024 Joaquín's Q2 2024 Update
- 04/20/2024 Joaquín's Q1 2024 Update
- 01/10/2024 Joaquín's Q4 2023 Update
- 10/27/2023 Joaquín's Q3 2023 Update
- View All Posts...