In C++20, the concept of POD is deprecated, supposedly because it is a meaningless composite trait of being trivial and standard-layout. However, the definition of POD in the C++20 draft is not exactly "both trivial and standard-layout"; it is actually:
A POD class is a class that is both a trivial class and a standard-layout class, and has no non-static data members of type non-POD class (or array thereof). A POD type is a scalar type, a POD class, an array of such a type, or a cv-qualified version of one of these types.
In other words, not only is a POD type both trivial and standard-layout, but it is also recursively so.
Is this recursive requirement redundant? In other words, if a type is both trivial and standard-layout, is it automatically recursively trivial and standard-layout as well? If the answer is "no", then what is an example of a standard-layout, trivial type that fails to be POD?
Standard layoutness depends on standard layoutness of non-static members:
Triviality also depends on triviality of non-static members. For conciseness, I've quoted only the rule for the default constructor, but the other special member functions have similar wording:
As far as I can tell, the explicit requirement of PODness to apply to members is redundant, since it also implicitly follows from the requirements of being standard layout and trivial.