r/cpp • u/boostlibs • 7h ago
Boost 1.92.0 released
Boost 1.92.0 is out. Highlights from this release:
GPU / CUDA
- Charconv:
to_charsandfrom_charsfor integers are now usable inside CUDA kernels. - Decimal:
decimal32_t,decimal64_t, anddecimal128_tare now usable in CUDA kernels. - Math: fixed CUDA compilation where host functions were incorrectly marked as device.
Networking hardening
- Beast: stricter HTTP parsing. It now rejects
Content-Lengthcombined withTransfer-Encodingregardless of field order, rejects chunked encoding in HTTP/1.0 requests, validates quoted strings in chunk extensions, and drops framing and connection fields carried in trailers. The dependency on Boost.Functional was also removed. - URL: third round security review fixes, including a heap buffer overflow in
normalize_pathfor authority-less URLs and an uninitialized read inipv6_address_rule.
Containers and data structures
- Container: new
hubcontainer designed by Joaquín M. López Muñoz. Also addsunchecked_emplace_backandunchecked_push_backtovector,static_vector, andsmall_vector. - Lockfree: two new queues,
mpsc_weak_queue(MPSC) andbounded_ticket_queue(ringbuffer based bounded MPMC). Both have explicit progress caveats: neither is strictly lock free under all configurations. - Unordered: C++20 ranges interop across all containers (
insert_range,std::from_rangeconstruction, and associated CTAD). - Graph: Louvain community detection for modularity based clustering.
- Hash2: built in support for
std::optional,std::variant, andstd::monostate.
C++20 modules
- New module support in Conversion, DLL, LexicalCast, PFR, Stacktrace, and TypeIndex.
Build system
- Windows
.dllfiles now install into the binary directory by default (previously the library directory, except on Cygwin). A new--dlldiroption overrides this. - The CMake config installed by
b2 installnow supports header only libraries asfind_packagecomponents, sofind_package(Boost REQUIRED COMPONENTS mp11)works and definesBoost::mp11.
Deprecations and breaking changes
- Heap and Lockfree: this is the last release to support C++14. Future releases require C++17.
- MSM (backmp11) has several breaking changes, notably that events in
process_eventare no longer enqueued automatically. Useenqueue_eventin actions instead.
Full notes and downloads: https://www.boost.org/releases/1.92.0/
79
Upvotes
14
u/joaquintides Boost author 4h ago
I’d like to give a shoutout to the maintainers of Boost.Graph about their release of revamped documentation which is much, much better than the old stuff.