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.

Reply via email to