New Boost library proposal and a talk on how to make C++ ranges faster
Apr 8, 2025During Q1 2025, I’ve been working in the following areas:
Candidate Boost Bloom Library
During the entire quarter I’ve been working on a Boost proposal around Bloom filters:
Class template boost::bloom::filter
can be configured to implement a classical Bloom filter
as well as variations discussed in the literature such as block filters, multiblock filters, and more.
#include <boost/bloom/filter.hpp>
#include <cassert>
#include <string>
int main()
{
// Bloom filter of strings with 5 bits set per insertion
using filter = boost::bloom::filter<std::string, 5>;
// create filter with a capacity of 1'000'000 **bits**
filter f(1'000'000);
// insert elements (they can't be erased, Bloom filters are insert-only)
f.insert("hello");
f.insert("Boost");
//...
// elements inserted are always correctly checked as such
assert(f.may_contain("hello") == true);
// elements not inserted may incorrectly be identified as such with a
// false positive rate (FPR) which is a function of the array capacity,
// the number of bits set per element and generally how the boost::bloom::filter
// was specified
if(f.may_contain("bye")) { // likely false
//...
}
}
The library is ready for official review, which I plan to ask for in April. Chris Mazakas is helping with a very useful vcpkg registry so that future reviewers can download and install candidate Boost.Bloom and dependencies with minimal hassle via vcpkg.
Presentation at using std::cpp 2025
I prepared and presented the talk “Push is Faster” at the using std::cpp 2025 conference in Madrid, March 19-21:
https://github.com/joaquintides/usingstdcpp2025
(The video of the talk will be publicly available in a few weeks.) We discussed push and pull paradigms for sequential data processing, why C++ ranges are not as fast as they could be, and an alternative design based on so-called transrangers. If feedback is positive, I may eventually grow the transrangers proof-of-concept library into a full-fledged proposal for Boost.
Boost.Unordered
- Reviewed PR#299 from Chris Mazakas, a complete migration of Boost.Unordered documentation to Antora. The new docs are multi-page and generally much nicer looking. Great work, Chris!
- Retouched some aspects of the new Antora docs (PR#303) and filed some pending issues (#304).
Boost promotion
- Posted a tweet publicizing Rubén Pérez’s work on module support for Boost.
- Provided support to Rob Beeston for the creation of a Boost.Unordered poster to be displayed at the upcoming WG21 meeting in Sofia, Bulgaria.
Support to the community
- I’ve pre-reviewed Jean-Louis Leroy’s Boost.OpenMethod proposal.
- Supporting the community as a member of the Fiscal Sponsorhip Committee (FSC). Asset transfer from the Boost Foundation to the C++ Alliance is still being negotiated, I hope all pending issues can be cleared up soon.
All Posts by This Author
- 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...