Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2022-05-13 12:24:07


John Maddock wrote:
> > I believe that modules are so important that you should drop everything and
> aim to release a modular version of Boost.
>
> Never going to happen - I asked about modules around here recently, and
> there was very little interest.
>
> I did as it happens I experimented further, and made Boost.Regex
> available as a module: https://github.com/boostorg/regex/pull/174 It
> compiles with msvc and nothing else, see for example:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105320.
>
> I also tried with part of boost.math
> (https://github.com/boostorg/math/pull/783) and again ran into
> intractable gcc and clang issues.
>
> I'm afraid my conclusion is that modules are simply not yet ready for
> prime time.

If they ever are.

Modules can work for leaf libraries, but for libraries used as dependencies
by other libraries, you'll encounter a situation where the same translation
unit imports boost.lib or "boost/lib.hpp" in one place and then includes
"boost/lib/something.hpp" in another, which is probably never going to
work correctly.

I suppose it might stand a chance if all the imports are done first, so that
the include guard macros are defined. But I think that's not going to work
in practice either.

Basically, all Regex consumers also must respect the REGEX_AS_MODULE
macro and switch to `import boost.regex`. Repeat per every library.


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