Boost logo

Boost :

From: Jason Shirk (jasonsh_at_[hidden])
Date: 2006-04-10 18:08:23


> From: Thyfate [mailto:thyfate_at_[hidden]]
>
> The following program compiled with MSVC8 gives different results
between
> intrinsics and boost type traits (in the wrong sense: as if the type
> traits
> library knew more about the classes than the compiler)
>
> It seems to me this is related to a bug in MSVC8 intrinsics which
should
> not
> consider class two (see program below) as a POD type... The library
should
> thus not use the __is_pod intrinsics... though I can not find in the
> standard a place where it is said that POD types should not have
> constructors... (but then class one should also be of pod type)
>
> Could someone please confirm/propose a fix?
>

We made a conscious decision to have the intrinsic match our internal
notion of a pod.

We knew that our notion of a pod was broken in a few ways, this being
one of them. It wasn't clear to us that having __is_pod return
something different than our internal notion of a pod was the right
thing to do.

Futhermore, we knew from experience fixing our internal notion of a pod
was a breaking change, and a potentially serious one at that.

In the past couple of weeks, we have been reviewing this decision to see
what we can do without breaking too much code.

--
Jason Shirk
VC++ Compiler Team

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