Roger Leigh wrote:
It's truly horrible, and I don't know why it's liked so much within the boost community.
It's not liked at all. The Boost community is as wrong on this issue as the C++ community is. :-) The idea here is to prevent inadvertent linking to the wrong variant, with the associated nasty ODR problems that result. This comes somewhat more naturally to Windows developers who are accustomed to not being able to link debug to release and libraries using static runtime to libraries using dynamic runtime (and of course 32 bit to 64 bit). Since traditionally compilers don't enforce ODR and things mostly appear to work regardless, the problem doesn't attract much attention. You linked to the preinstalled Boost.System 1.53 built with C++03/release instead of the just built 1.64 with C++14/debug? No problem, everything works fine. Until it doesn't. This by the way has nothing to do with the proposed minimal CMake support, which builds the library as a subproject with whatever settings the main project uses and doesn't care about naming strategies.