Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2019-05-29 17:51:04


On 5/29/19 6:13 PM, dariomt--- via Boost wrote:
>>
>>
>>> 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.

> Should I open an issue in github for Boost.Config?

Yes, or better yet - make a PR.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk