C++ concepts: PODType
From cppreference.com
                    
                                        
                    
                    
                                                            
                    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, can be manipulated using C library functions: it can be created with std::malloc, it can be copied with std::memmove, etc, and can be exchanged with C libraries directly, in its binary form.
Note, that the standard doesn't define a named requirement or concept with this name. This is a type category defined by the core language. It is included here as concept only for consistency.
[edit] Requirements (until C++11)
Either
Or a class type (class or struct or union) that is
- an AggregateType
 - 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
 
Or an array of such type
[edit] Requirements (since C++11)
Either
Or a class type (class or struct or union) that is
- TrivialType
 - StandardLayoutType
 - has no non-static members that are non-POD
 
Or an array of such type
[edit] See also
|    (C++11)  | 
   checks if a type is plain-old data (POD) type   (class template)  |