Boost logo

Boost :

From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-05-17 07:33:01


John Maddock wrote:

> Vladimir Prus wrote:
>> Hi,
>> quite a number of headers in boost/config/compiler have bits like
>> this:
>>
>> # error "Unknown compiler version - please run the configure
>> tests and report the results"
>>
>> I think this cause more hard than good these days. If a new version
>> of an otherwise perfectly conforming compiler is released, this error
>> will be emitted when compiling Boost. So, users would have to
>> manually hack the config headers and keep this change locally. And,
>> it's likely that some users won't even bother -- especially given
>> that the message say to run some configure tests, and where those
>> configure tests are is not clear. And definitely, those tests have
>> nothing to do with the 'configure' script at the top-level dir.
>>
>> So, the message is likely to totally confuse some users, and force
>> other users to keep local modifications to boost. Can we either
>> remove this check, or assume that unknown version of compiler is
>> identical in behaviour to the last known one?
>
> I think you're probably misunderstanding how those headers work: the #error
> is only emitted if:
>
> * the user has defined BOOST_ASSERT_CONFIG and
> * the compiler is not recognosed.
>
> Since the whole purpose of BOOST_ASSERT_CONFIG is to emit an error when the
> compiler is not recognised, this is quite deliberate and should IMO stay.
> Unless users explicitly define this macro they won't ever see the #error.

Well, warning is just as bad, as it's emitted per each compiled file.

> There are some compilers that historically emit a *warning* if the compiler
> is unrecognised and BOOST_ASSERT_CONFIG is *not* defined. These are:
>
> Borland: Given it's current poor std conformance, I think this one should
> stay.

I suspect borland users already know about its poor conformance, so
need no further message :-)

> GCC: This has already been disabled for the reasons you give above.

Ah, did not notice it.

> Intel: Also already disabled.
> MSVC: Currently still emits a warning, I'm not sure if this one should stay
> or not.

MSVC is what I was looking at, and I'd suggest it does not emit a warning.

- Volodya


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