Mike Dev wrote:
- Unnecessary dependencies. All the projects I'm working on nowadays are c++14 or even 17. Why the hell does the latest version of my preferred boost library X still have a dependency on boost library Y that has been merged into the standard since c++11 or been superseded by c++11 language feature? It just adds complexity to the build process, increases compile times and sometimes leads to subtle bugs. I'm paying (sometimes little sometimes heavily) for something I don't use/need (c++98 compatibility).
We've been over this a few times already. We can't simultaneously support C++03 and C++14 (without heroics) because these are ABI- and API-incompatible. If the library uses boost::function it works regardless of whether the user is on C++03 or on C++17; but if it switches to std::function automatically when available, then whenever the user's -std and the compiled Boost's -std differ, trouble ensues. We can switch to std::function unconditionally, but only if we drop C++03 (for some definition of C++03 because only the latest and greatest MSVC is ~fully C++11 compliant.)