Hi all,
I'm working on a Boost.Exception issue [1] and I need to detect compiler support of std::current_exception. In the issue there is a suggestion to use #if __cplusplus > 199711L but that does not work for my use case (VS2015 reports __cplusplus = 199711L).
MSVC defines _MSVC_LANG for this[1]. At least, it used to. However, it would be cleaner to have a dedicated macro in Boost.Config for this.
Totally agree.
Is it possible to add a config macro for this? Or is there a good enough existing macro I can use?
I don't think there is. Something like BOOST_NO_CXX11_HDR_EXCEPTION would be useful.
I would need to detect support for std::current_exception, not the presence of header <exception>, so I would think that BOOST_NO_CXX11_CURRENT_EXCEPTION is what I need, right?
BOOST_NO_CXX11_HDR_EXCEPTION, as all BOOST_NO_CXX11_HDR_* macros, detect that the header not only exists, but is usable and contains all major components described by the standard. In case of BOOST_NO_CXX11_HDR_EXCEPTION, that would mean std::exception_ptr, std::current_exception, std::rethrow_exception, std::make_exception_ptr, etc. You need at least std::exception_ptr and std::current_exception.
Thanks, that makes sense!
Should I open an issue in github for Boost.Config?
Yes, or better yet - make a PR.
Added github Issue #284 [1], I'll try to come up with a PR. Wondering how deep the rabbit hole goes... ^_^ Regards [1] https://github.com/boostorg/config/issues/284