__is_pod documentation is misleading

http://clang.llvm.org/docs/LanguageExtensions.html claims __is_pod is also supported by GNU and Microsoft. That's true, but the Microsoft implementation has different semantics -- it's false for fundamental types.

http://msdn.microsoft.com/en-us/library/vstudio/ms177194(v=vs.80).aspx

It may be worth noting this difference so people familiar with clang/GNU __is_pod semantics don't find out the hard way that MSVC's are different. I wouldn't be surprised if other traits have different MSVC semantics, given this surprising difference, but I only checked __is_pod.

Jeff

May I interest you in submitting a documentation patch to cfe-commits?

-- Sean Silva

It's tempting, but I'm kind of swamped with my own work at the moment and don't have time to properly wordsmith this, or to do due diligence and check semantics of the other macros. :frowning:

Jeff

I believe this originally was a bug that MS chose to document rather than fix.

IIRC, the Boost maintainers have noticed this before.

Bo Persson