On Friday, 23 June 2023 at 18:43:06 UTC, Steven Schveighoffer
wrote:
It should be a spec change. Change POD to say "type" instead of
"struct".
The goal of `isPOD` is to determine how careful generic code
needs to be to pass the type around, or copy it. Changing it to
false implies that it is not "plain old data". I.e. it has a
destructor, it has hidden members, or it cannot be copied via
bit copying (all of these do not fit the type in question).
The only other option is to error on calling `__traits(isPOD,
char)`, but I think that's even worse.
-Steve
Yeah, I think that's also where I'm standing. The current
behavior seems correct and useful, it's just not documented
correctly.