Namespaces
Variants
Views
Actions

C++ concepts: PODType

From cppreference.com
< cpp‎ | concept
Revision as of 15:00, 2 November 2012 by P12bot (Talk | contribs)

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.

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

Requirements (since C++11)

Either

Or a class type (class or struct or union) that is

Or an array of such type

See also

(C++11)
checks if a type is plain-old data (POD) type
(class template) [edit]