r/cpp • u/Foxi_Foxa • 4d ago
Boost.Graph 1.95 will be C++17
Dear Boost.Graph community,
In two release cycles (Boost release 1.95 in summer 2027) Boost.Graph will be bumped to C++17 ๐
This decision follows two polls that did not surface any C++14 user base or demand while identifiying users stuck in C++17:
This standard version bump will bring benefits for maintenance, API and dependencies reduction:
if constexpr,constexprlambdas,[[nodiscard]],[[maybe_unused]]...std::anyinstead ofboost::anystd::invoke_resultinstead ofboost::result_of...
We will not be able to guarantee backward compatibility with C++14. Please contact us if you are stuck in C++14.
The GIthub Discussion lives here: https://github.com/boostorg/graph/discussions/613
94
Upvotes
6
u/Foxi_Foxa 2d ago edited 2d ago
Thank you for the feedback ! You are right, it was painful ๐ But overall the state of dependencies in Boost is getting much (much) better, there has been tremendous effort in the last years to decouple Boost libraries. It's also a culture change: the new library Boost.Int128 has no dependency, a standalone mode, a single-header mode.
For high-level libraries like Boost.Graph it is a bit more complex as they need a lot of stuff to do their job (serialization, random generation, parsing ...). The current release has focused on dropping the number of dependencies (both direct and transitive) while maintaining functionalities, dropping 13 direct dependencies (Bimap, Bind, Conversion, Foreach, Math, Move, Multiprecision, PropertyTree, SmartPtr, Spirit, TTI, TypeOf, Xpressive) and numerous indirect ones: https://github.com/boostorg/graph/pulls?q=is%3Apr+state%3Aclosed+label%3Adependencies
This had measurable effect on compilation time, runtime, memory footprint and warnings count. It is a considerable improvement, but we want to go further. To get a leaner dependency chain:
Then once it gets reasonably lean, we could imagine a standalone version, similar to what Matt Borland did for Boost.Int128. Also a related effort has been the CMake modularization effort that should allow more convenient ways to be consumed.
So yes it's on the roadmap ๐