|
Boost : |
From: John Maddock (john_at_[hidden])
Date: 2004-03-20 07:06:41
> >Sounds like it's close enough, it might fail for people with VC6 + Intel
and
> >an updated Dinkum library,
>
> Why?
Because although the library version number will be updated, it will still
be a broken library (because Dinkumware ship libraries that are
preconfigured to a particular compiler).
> > but that'll just have to be too bad, changes in mainline cvs now.
>
> Thanks. Now, pardon me if I have other questions (all concerning the
> part that follows the #if/#endif above):
>
> - shouldn't the test for BOOST_STD_EXTENSION_NAMESPACE be based on the
> *library* version, rather than _MSC_VER?
>
> - shouldn't BOOST_NO_STD_ITERATOR_TRAITS test for "real" VC6?
Same problem, it doesn't matter what the library version number is, because
the Dinkum library is preconfigured for a particular compiler, it doesn't
become un-broken just because we're using Intel, if was originally
configured for VC6/7, then it will always be broken, period.
> <debatable>
> At the cost of duplicating the definition, maybe it would
> be clearer to do:
>
>
> #if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
> // full Dinkum
>
> # if REAL_VC6
> ...
> # define BOOST_NO_STD_ITERATOR_TRAITS // <---
> # endif
>
>
> #else
> // old Dinkum
> ...
> # define BOOST_NO_STD_ITERATOR_TRAITS // <---
> #endif
> </debatable>
>
> - The test for BOOST_NO_STD_LOCALE is really restrictive. Fortunately
> it only refers to the Dinkum lib shipping with VC7. However if many of
> our users use Intel C++ with that library then it might be worth to
> soften it, because it really prevents a lot of code to work. (Well,
> this is not really a question :))
Sure, but Intel was choking on anything that included <locale> (or even did
any vaguely non-trivial stream io) - if you can verify that this has been
fixed with Intel 8 (I'm sure it probably has), then lets add an Intel
version check and re-enable this for Intel 8.
> PS: I'm not one who claims that others do work that he could do. It's
> just that these issues are a bit delicate and I wanted to see with you
> if there's any problem I'm missing. After that, I could commit the
> changes for you, if you like. This also holds for the compiler
> identification macros, after we agree on the names, of course. I
> propose:
>
> BOOST_COMEAU_CPP or BOOST_COMEAU_COMPILER
> BOOST_GNU_CPP or BOOST_GNU_COMPILER
> BOOST_INTEL_CPP or BOOST_INTEL_COMPILER
>
> BOOST_MSVC (well, this is a bit inconsistent :( Ideas?)
Personally I prefer the BOOST_GNU_COMPILER versions, but we already have
BOOST_INTEL_CXX_VERSION, so maybe BOOST_GCC_CXX_VERSION etc?
Thanks,
John.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk