Boost Libraries are Obsolete
I believe some Boost libraries become obsolete by newer versions of C++. For example, boost::filesystem, Boost.CharConv, and Boost.Variant could be considered obsolete in versions C++17 and later as these facilities are in the standard. It can be tricky to figure out what is obsolete. Is boost::shared_ptr obsolete in C++11? Probably not since it has features not found in the standard. Anyway, I'm not trying to figure this out for all the libraries. For boost.org it might be nice to let users specify the "minimum version of C++" which they use. And they can opt in to filtering the Libraries based on this minimum version. Someone who is using C++23 can choose not to see libraries like Boost.Align, Boost.Assign, or Boost.Atomic. We will need to add metadata to each library's repository to know the maximum version. What do you all think about this? -- Regards, Vinnie Follow me on GitHub: https://github.com/vinniefalco
I was litterally showing the boost website to a colleague with a similar need, that is decluttering the libs based on the standard they use. So I guess the need is here. Le mar. 18 nov. 2025 à 19:24, Vinnie Falco via Boost <boost@lists.boost.org> a écrit :
I believe some Boost libraries become obsolete by newer versions of C++. For example, boost::filesystem, Boost.CharConv, and Boost.Variant could be considered obsolete in versions C++17 and later as these facilities are in the standard. It can be tricky to figure out what is obsolete. Is boost::shared_ptr obsolete in C++11? Probably not since it has features not found in the standard. Anyway, I'm not trying to figure this out for all the libraries.
For boost.org it might be nice to let users specify the "minimum version of C++" which they use. And they can opt in to filtering the Libraries based on this minimum version. Someone who is using C++23 can choose not to see libraries like Boost.Align, Boost.Assign, or Boost.Atomic.
We will need to add metadata to each library's repository to know the maximum version.
What do you all think about this?
-- Regards, Vinnie
Follow me on GitHub: https://github.com/vinniefalco _______________________________________________ Boost mailing list -- boost@lists.boost.org To unsubscribe send an email to boost-leave@lists.boost.org https://lists.boost.org/mailman3/lists/boost.lists.boost.org/ Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/P5L5CCTJ...
I believe some Boost libraries become obsolete by newer versions of C++. For example, boost::filesystem, Boost.CharConv, and Boost.Variant could be considered obsolete in versions C++17 and later as these facilities are in the standard. It can be tricky to figure out what is obsolete. Is boost::shared_ptr obsolete in C++11? Probably not since it has features not found in the standard. Anyway, I'm not trying to figure this out for all the libraries.
For boost.org it might be nice to let users specify the "minimum version of C++" which they use. And they can opt in to filtering the Libraries based on this minimum version. Someone who is using C++23 can choose not to see libraries like Boost.Align, Boost.Assign, or Boost.Atomic.
We will need to add metadata to each library's repository to know the maximum version.
What do you all think about this?
I much prefer boost versions of many things compared to the std, because std refuses to improve after the first release. usually citing abi stability. This makes boost libraries which have a direct std competitor still valuable. Perhaps not all, but some. The standard has had a unordered_map since forever, but boost unordered still has its place. // Jakob
On Tue, Nov 18, 2025 at 11:14 AM Jakob Lövhall via Boost < boost@lists.boost.org> wrote:
I much prefer boost versions of many things compared to the std, because std refuses to improve after the first release. usually citing abi stability. This makes boost libraries which have a direct std competitor still valuable. Perhaps not all, but some. The standard has had a unordered_map since forever, but boost unordered still has its place.
Right, and this feature is about choice. If you never choose a "minimum C++ version" then you will always see all the libraries. I agree about unordered_map. Is every Boost library better than its std equivalent, or do you feel that there are some libraries which are in fact obsolete? For example, how do you feel about Boost.Assign and Boost.Move? Thanks
Right, and this feature is about choice. If you never choose a "minimum C++ version" then you will always see all the libraries. I agree about unordered_map. Is every Boost library better than its std equivalent, or do you feel that there are some libraries which are in fact obsolete? For example, how do you feel about Boost.Assign and Boost.Move?
some boost libraries are obsolete, some boost libraries are abandoned, some boost libraries are both active and relevant. I do not use Boost.Move nor Boost.Assign. Boost.Move indeed seems obsolete.
On Tue, Nov 18, 2025 at 11:27 AM Jakob Lövhall <lovhall@protonmail.com> wrote:
some boost libraries are obsolete, some boost libraries are abandoned, some boost libraries are both active and relevant. I do not use Boost.Move nor Boost.Assign. Boost.Move indeed seems obsolete.
Exactly. I don't think I've seen you around before, Jakob - welcome! Giving users a way to express "I'm using C++17 and later" is helpful in other ways. It gives us a direct measurement of the importance of each of the C++ language versions. And we'd like to give users more ways of helping us figure out what they find important, such as putting a star to "favorite" a library, or a survey they can fill out to tell us which Boost libraries they use most. Thanks
> I believe some Boost libraries become> obsolete by newer versions of C++.> For example, boost::filesystem,> Boost.CharConv, and Boost.Variant could> be considered obsolete
Cool discussion.
Yes and no. It depends a bit on what ismeant by obsolete.
One top-level goals of Boost.Charconvincluded bringing the functionalityback to legacy C++11 compilers.This is the kind of thing you mean.If newer standards have it, thenone need not necessarily turn toBoost to obtain it.
But, as mentioned in another post,some libraries offer vastly improvedperformance compared to commonoff-the-shelf implementations.Also, we recall Boost.Charconvintends to offer high performance.
Another poster mentioned in somecases a Boost preference for certainlibraries, also motivated by performance.
Simultaneously, I can see the need toimprove clarity regarding "what partsof Boost are needed for my compilerand standard?", as this is, in factconfusing.
- Christopher
On Tuesday, November 18, 2025 at 07:24:08 PM GMT+1, Vinnie Falco via Boost <boost@lists.boost.org> wrote:
I believe some Boost libraries become obsolete by newer versions of C++.
For example, boost::filesystem, Boost.CharConv, and Boost.Variant could be
considered obsolete in versions C++17 and later as these facilities are in
the standard. It can be tricky to figure out what is obsolete. Is
boost::shared_ptr obsolete in C++11? Probably not since it has features not
found in the standard. Anyway, I'm not trying to figure this out for all
the libraries.
For boost.org it might be nice to let users specify the "minimum version of
C++" which they use. And they can opt in to filtering the Libraries based
on this minimum version. Someone who is using C++23 can choose not to see
libraries like Boost.Align, Boost.Assign, or Boost.Atomic.
We will need to add metadata to each library's repository to know the
maximum version.
What do you all think about this?
--
Regards,
Vinnie
Follow me on GitHub: https://github.com/vinniefalco
_______________________________________________
Boost mailing list -- boost@lists.boost.org
To unsubscribe send an email to boost-leave@lists.boost.org
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/P5L5CCTJZMQ6N627FN724T2K5I62PXMU/
participants (4)
-
Arnaud Becheler -
Christopher Kormanyos -
Jakob Lövhall -
Vinnie Falco