Boost logo

Boost :

Subject: Re: [boost] [type_traits] Rewrite and dependency free version
From: Peter Dimov (lists_at_[hidden])
Date: 2015-02-01 10:55:21


John Maddock wrote:
> > Find a way to convince Robert to allow splitting serialization.
>
> That doesn't solve the issue I was referring to: namely library X depends
> on Y *only* if you're using Y anyway. Serialization being a prime
> example: many libraries "apparently" depend on it, but the dependency is
> only a true one if you're using serialization anyway.

It's a true one. These libraries include serialization headers. If
serialization is not installed, these libraries break.

This is not like the other false dependencies in which an optional header in
X includes something in Y.

(You could turn that into a 'false dependency' by moving the serialization
include into an optional header, in principle.)

The reason Stephen talks about splitting serialization is that adding
serialization support needs only a few includes, independent of the rest of
the library. If these are separated into 'serialization_core', there'll be
no problem with including them.

The same problem exists with range(27). Most includes only use the core
part, which is a few independent headers. Also a true dependency.

The only 'false' dependency that comes to mind right now is function ->
typeof.


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