Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2008-05-17 07:17:23


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.

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.
GCC: This has already been disabled for the reasons you give above.
Intel: Also already disabled.
MSVC: Currently still emits a warning, I'm not sure if this one should stay
or not.

HTH, John.


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