Spec-Zone.ru › C++

C++ именованные требования: StandardLayoutType (с C++11)

Указывает, что тип является типом стандартной компоновки. Типы стандартной компоновки полезны для взаимодействия с кодом, написанным на других языках программирования.

Примечание: стандарт не определяет именованное требование с таким именем. Это категория типов, определенная основным языком. Она включена здесь как именованное требование только для согласованности.

Требования

Следующие типы коллективно называются типами стандартной компоновки:

  • скалярные типы
  • классы стандартной компоновки
  • массивы таких типов
  • cv-квалифицированные версии этих типов

Свойства

См. стандартную компоновку.

Отчеты об ошибках

Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применён к Поведение, как опубликовано Правильное поведение
CWG 1672 C++11 правило первого нестатического члена данных игнорировалось
существование пустых базовых классов
правило первого нестатического члена данных
сделано рекурсивным
CWG 1813 C++11 класс с членом, определённым в косвенном базовом классе
фактически не был типом стандартной компоновки
все объявления членов должны быть
в одном классе
CWG 2120 C++11 массив в качестве первого члена не учитывался при
сравнении типа первого элемента с типом базового класса
члены-массивы учитываются

См. также

is_standard_layout
(C++11)
проверяет, является ли тип типом стандартной компоновки
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/StandardLayoutType

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API