Andrey Semashev wrote:
So what do you think, is it worth to split MPL?
I do think that it will be worth it, although I'm not entirely sure that this needs to be an immediate priority of ours. If we have the core type traits, much of the focus on MPL might go away, although dependencies have their own insidious ways of getting back into the tent. value_init is an example of what happens. You have a library of 147 (say) headers. One of them (for_each.hpp) is affected by a compiler bug. Someone fixes it by including value_init.hpp into it. Now everyone who includes some of the other 146 headers acquires a module-level dependency on whatever hosts value_init. A simple core part is less prone to this dependency creep. I agree that the core type traits will help more, though. Many modules will be able to avoid any contact with MPL if we have those.