Boost logo

Boost :

Subject: Re: [boost] [config] RTTI detection on Intel C++
From: John Maddock (boost.regex_at_[hidden])
Date: 2014-06-10 13:00:40


> I was going to prepare a simple pull request that basically added
>
> #if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI)
> && !defined(_CPPRTTI)
>
> #define BOOST_NO_RTTI
> #define BOOST_NO_TYPEID
>
> #endif
>
> to intel.hpp, but then I saw that this file doesn't contain any logic
> for BOOST_NO_EXCEPTIONS, relying instead on common_edg.hpp to check
> __EXCEPTIONS.
>
> So I wonder whether the preferred approach wouldn't be to check __RTTI
> in common_edg.hpp instead.
>
> Opinions?
>
> There's also a slight complication here because I suspect that when
> Intel is in Microsoft mode, when RTTI is off it will still support
> typeid, as MSVC does; so just BOOST_NO_RTTI would need to be defined,
> and not BOOST_NO_TYPEID.

I would say put what EDG usually does in common_edg.hpp and then
override in the individual compiler header if it differs.

Not sure how much that helps in this case.... maybe the "safe" thing to
do is to disable both in common_edg.hpp when __RTTI is not set, then
undef BOOST_NO_TYPEID when required (msvc)?

John.


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