Boost logo

Boost :

From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2024-01-25 03:22:35


On Mon, Jan 22, 2024 at 12:58 PM Ruben Perez via Boost <
boost_at_[hidden]> wrote:

> The biggest barrier I have for adoption is that it’s a compiled
> library. MySQL is header-only, which means that the official CMake
> modules in the release don’t contain a Boost::mysql target. Adding a
> hard dependency on Boost.Charconv is thus a breaking change for my
> users, who will need to update their CMLs.
>

My experience in Boost has taught me that this is probably a good thing.
Users depending on libraries to be header-only is an impediment to creating
great libraries. The only thing worse than not having the ability or
motivation to compile and consume an external library is the absurd
requirement to "only have the standard library as a dependency."

I believe that Boost should lead by example here. Libraries should be
header-only as a coincidence and not by design. For example Boost.Variant2
should be header-only. But Boost.MySQL does not need to be header-only. In
my opinion the best way to motivate people to learn how to properly compile
and link external dependencies is to create non-header-only Boost libraries
that are so compelling in features, so rewarding in value, that users will
accept the cost of incorporating linkable external dependencies instead of
forgoing useful libraries.

Thanks


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk