C++ concepts: StandardLayoutType

From cppreference.com
< cpp‎ | concept

Specifies that a type is standard layout type. Standard layout types are useful for communicating with code written in other programming languages.

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

  • All non-static data members have the same access control
  • Has no virtual functions or virtual base classes
  • All non-static data members and base classes are themselves standard layout types
  • Has no base classes of the same type as the first non-static data member (see empty base optimization)
  • Either has no non-static data members in the most derived class and at most one base class with non-static data members
  • Or has no base classes with non-static data members at all

[edit] Properties

See Standard layout.

[edit] See also

checks if a type is standard-layout type
(class template)