C++ именованные требования: StandardLayoutType (с C++11)
Указывает, что тип является типом стандартной компоновки. Типы стандартной компоновки полезны для взаимодействия с кодом, написанным на других языках программирования.
Примечание: стандарт не определяет именованное требование с таким именем. Это категория типов, определенная основным языком. Она включена здесь как именованное требование только для согласованности.
Требования
Следующие типы коллективно называются типами стандартной компоновки:
- скалярные типы
- классы стандартной компоновки
- массивы таких типов
- cv-квалифицированные версии этих типов
Свойства
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применён к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| CWG 1672 | C++11 | правило первого нестатического члена данных игнорировалось существование пустых базовых классов | правило первого нестатического члена данных сделано рекурсивным |
| CWG 1813 | C++11 | класс с членом, определённым в косвенном базовом классе фактически не был типом стандартной компоновки | все объявления членов должны быть в одном классе |
| CWG 2120 | C++11 | массив в качестве первого члена не учитывался при сравнении типа первого элемента с типом базового класса | члены-массивы учитываются |
См. также
|
(C++11) | проверяет, является ли тип типом стандартной компоновки (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/StandardLayoutType