Boost logo

Boost :

From: Matt Borland (matt_at_[hidden])
Date: 2021-05-04 16:59:17


On Tue, 2021-05-04 at 08:19 -0700, Jeff Garland via Boost wrote:
>
> I'm curious how this was done.  Is there still a connection to the
> boost.core that's pulled into the standalone or does it completely
> remove
> all ties?   If there's a set of issues or pull requests would be
> curious to
> dig into the details -- because I'd like to do something similar of
> course.
>

This completely removes all ties from other boost libraries. The only
requirement is a compiler that is fully compliant with C++11 (works
with GCC 5, Clang 5, and MSVC 14.0). 

There seem to be four categories of dependencies in math. The first are
those that can be replaced by C++11 (e.g. boost.array,
boost.type_traits, etc.). The second are those that can be replaced by
STL functionality that would have slightly different behavior (assert
vs boost.assert). In this case the boost types are used as long as
standalone mode is not enabled. The third are those that can be easily
re-implemented (e.g. boost.endian). A tiny fraction was used in math so
the required parts were generally pulled out. The last are those that
cannot easily be replaced (e.g. boost.lexical_cast) or require higher
language standards (e.g. boost.integer can be replaced using C++17).
Functions that require these dependencies are not common, but they
throw a hard error that says disable standalone mode/change language
standard for use.

If you look at the closed PRs on boost.math you will see a number of
PRs that are "Remove boost.x dependency". Feel free to reach out if you
have any questions or want help.

Matt


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