# C++ named requirements: PODType

From cppreference.com
< cpp‎ | named req

Specifies that the type is POD (Plain Old Data) type. This means the type is compatible with the types used in the C programming language, that is, can be exchanged with C libraries directly, in its binary form.

Note: the standard doesn't define a named requirement with this name. This is a type category defined by the core language. It is included here as a named requirement only for consistency.

This type requirement is deprecated in the C++ standard. All of its uses have been replaced by the more refined type requirements, such as TrivialType | (since C++20)

### Requirements

Either:

- a scalar type;
- a class type (class or struct or union) that:

is an aggregate type; has no non-static members that are non-POD; has no members of reference type; has no user-defined copy constructor; has no user-defined destructor; | (until C++11)
is a trivial type; is a standard layout type; has no non-static members that are non-POD; | (since C++11)

- an array of such type.

### See also

is_pod (C++11)(deprecated in C++20) | checks if a type is a plain-old data (POD) type (class template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/PODType&oldid=103753"