The standard (C++98) says that only types with C-like construction/destruction semantics can be members of a union. That covers most of the things that would make a type non-POD, so just define a union type with a member of type A and the compiler should complain if A is not POD.
↧