Boost logo

Boost :

From: Alexander Grund (alexander.grund_at_[hidden])
Date: 2020-12-03 07:59:26

Am 02.12.20 um 19:17 schrieb John Maddock via Boost:
> FYI there are many traits in boost.type_traits which are not part of
> the standard.  I would hate to see folks re-implementing is_detected
> or has_operator_XXXX just to "not use type_traits".

I'm aware of that. I didn't say to "ban" type_traits or reimplement it.
My suggestion was to "ban" (hard word, I meant to "very strongly
discourage using it and actively shift boost libraries away from it")
MPL and reduce "the use of type_traits to the absolute minimum". For
most (anyone got numbers? I'd say 80% at least) there are std::
counterparts in C++11 which (usually) do the same. And if the library
doesn't use any of the additional boost traits, that would remove
another dependency and reduce compiletimes for end users (which likely
included <type_traits> somewhere already)

 From Emil Dotchevski

> People who want to ban MPL or any other library are effectively
admitting they have no skin in the game (they don't use it). We should
hear from actual users, but we won't; they don't have a problem to
complain about, because we have not broken their code yet.

You might have missed that, but this came up many times in the past.
Last I have noticed was

> The result is, that changing boost::mpl::vector66 to std::variant can
improve the compile time from 1:44 to 1:20 [...] Everything that was
compiled to Factorio, GUI, graphics library, networking, entity logic,
scripting, modding, logistic system... all these things together took
the same time to compile as two instances of boost::mpl::vector

Looks like they used Boost.Variant which is based on MPL. However in
this case IIRC Boost.Variant2 is C++11 already and doesn't use MPL so
that could have been used here.
But the message is the same: Increased compile time is in the Top 3
complaints about Boost since forever. And it has been shown multiple
times that MPL is the slowest choice for TMP once you got access to real
variadic templates

Boost list run by bdawes at, gregod at, cpdaniel at, john at