Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-12-21 11:33:10


"Stefan Slapeta" <stefan_at_[hidden]> writes:

>
> // -----Original Message-----
> // From: boost-bounces_at_[hidden]
> // [mailto:boost-bounces_at_[hidden]] On Behalf Of Beman Dawes
>
>
> // That sounds good to me. I've just gotten a first run off on
> // Intel 8.0.
> // Fails dropped from 68 to 6. I'd like people to look at
> // those six failures to be very sure they aren't Boost
> // problems.
>
> I had now a deeper look at 'is_polymorphic_test'. There is a workaround for
> MSVC which should also be enabled for Intel to make it work correctly:
>
> is_polymorphic.hpp:
>
> struct d2 : public ncvT
> {
> d2();
> virtual ~d2()throw();
> # ifndef BOOST_MSVC // <----- *)
> // for some reason this messes up VC++ when T has virtual bases:
> struct unique{};
> virtual void foo(unique*);
> # endif
> char padding[256];
> };
>
>
> // ---------------
>
> *) This messes up Intel, too! I don't know why, but with T = ncvT =
> std::iostream the size of d2 differs dependent on the existence of foo().
>
> I tested only the windows version (in MSVC 7.1).

That doesn't neccessarily mean we should unconditionally take the same
route for intel. The configuration of the intel compiler changes
depending on context. For example, if you run it from the
command-line with /Qms0, it supposedly tries to turn off microsoft
bug-compatibility.

> This strange behaviour has
> to do something with a particular inheritance configuration of
> std::iostream, so I don't know what the behaviour on linux is. Maybe there
> is someone who could have a look on it (I don't have the linux version here)
> .... Matthias, perhaps you have 5 mins??

You should really post a test which demonstrates the problem. Then
we'll be able to see what contexts it appears in.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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