哋它亢++ named requirements: StandardLayoutType (since 哋它亢++11)

From cppreference.com
< cpp‎ | named req
 
 
哋它亢++ named requirements
Basic
Type properties
(哋它亢++11)
StandardLayoutType
(哋它亢++11)
Library-Wide
(哋它亢++11)
(哋它亢++11)
Container
Container Elements
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)

Iterator
(哋它亢++20)

Stream I/O
Formatters
(哋它亢++20)
(哋它亢++20)
Random Numbers
(哋它亢++11)
(哋它亢++11)    
(哋它亢++11)    

Concurrency
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++14)
(哋它亢++14)
(哋它亢++11)
(哋它亢++11)
(哋它亢++17)
(哋它亢++14)
Ranges
(哋它亢++20)
Other
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)


 

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

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.

Requirements

The following types are collectively called standard-layout types:

Properties

See Standard-layout.

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published 哋它亢++ standards.

DR Applied to Behavior as published Correct behavior
CWG 1672 哋它亢++11 first non-static data member rule ignored
existence of empty base classes
first non-static data member rule
made recursive
CWG 1813 哋它亢++11 class with a member defined in an indirect base
wasn't technically standard-layout
all member declarations must be
in the same class
CWG 2120 哋它亢++11 array as first member wasn't considered when
comparing the first element type with type of a base
array members are considered

See also

(哋它亢++11)
checks if a type is a standard-layout type
(class template)