Boost logo

Boost :

Subject: Re: [boost] Making two Boost libraries interoperate
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2019-04-26 15:25:20


On Fri, 26 Apr 2019 at 16:51, Robert Ramey via Boost
<boost_at_[hidden]> wrote:
> On 4/25/19 4:12 PM, Mateusz Loskot via Boost wrote:
>
> > e.g. when using just
> > #include <boost/mp11.hpp>
> > or together with
> > #include <boost/mp11/mpl.hpp>
> > then MP11 does not or does depend on MPL.
>
> FYI - I generally discourage the definition of "convenience headers"
> such as used above:
>
> > #include <boost/mp11.hpp>
>
> I prefer to include just those specific headers that I'm using. Yeah -
> it's "inconvenient" but it gives me fine control and visibility over
> dependencies and helps minimize compile times.

It "gives you fine control" and that is surely desired.
It (often) does not work for end users who really can and do benefit
from such convenience headers:
- they may not care about compile times but they just want to get things done
- they quickly get frustrated by trial and error to get their units compiling,
and docs often run short explaining "if you want feature X include X.h"
not to mention "if you want customisation A of feature X include X.h and ..."
For me, as a library maintainer, convenience headers allow me to deprecate,
remove, rename, move around headers as I desire while restructuring code.
(I'm sure I'm speaking of obvious here.)

I see the fine control as belong to category of optimisation which comes
later than earlier to a typical user getting started with a library.

I'm very thankful Peter provided the convenience header. If I had to fish
for individual MP11 headers while switching GIL from MPL to MP11,
it would have taken me much longer to complete the task
(which I'd approached for at least 3 times anyway).

Best regards,

-- 
Mateusz Loskot, http://mateusz.loskot.net

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