
From: Thyfate [mailto:thyfate@free.fr]
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