Defined in header <type_traits> template< class T >
struct is_standard_layout; (since C++11)
If T is a standard layout type (that is, a scalar type, a standard-layout class, or an array of such type/class, possibly cv-qualified), provides the member constant value equal true. For any other type, value is false.
A standard-layout class is a class that satisfies StandardLayoutType.
The behavior is undefined if std::remove_all_extents_t<T> is an incomplete type and