On 6/5/2015 5:20 PM, Peter Dimov wrote:
Edward Diener wrote:
Suppose library X is compiled using C++11 mode and your own library Y, which uses library X as a dependency, is compiled without C++11 mode. Again those factors of interoperability between the libraries must be taken into account. Using my macros is not going to change any of that, ...
No, but one could argue that the existence of your macros in Boost.Config is going to encourage people to use them and hence make this situation more likely.
I agree but incorporating C++11 libraries or using C++11 language features in code is inevitable anyway. If my macros make it easier to do the former I view that as a success. I certainly feel that making easier to move forward toward C++11/C++14/C++17 should be one of the goals of Boost, rather than holding people back from doing so. I know that in a library on which I am working if the corresponding C++ standard equivalent libraries to certain Boost libraries are available I want to use them. There are situations where you might want to stick to the Boost version of a library when a C++ standard equivalent is available, but that's easy to do by just ignoring my macro system. Similarly you can use my macro system so that if you only want to use the C++ standard equivalent version of a Boost library you can easily create a preprocessor #error if it is not available.