[JavaScript] Разбор понятий: trivial type, standard layout, POD
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Автор: Виталий БутурлинСодержание:
Trivial classТривиальные классы (trivial class) - это классы или структуры, в которых специальные функции-члены предоставляются компилятором (явно отсутствует реализация) либо явно заданы как default. В таком классе нет управляющего кода, так как специальные функции-члены обьявлены (явно или неявно) тривиальными по умолчанию.Кроме того есть дополнительные требования, тривиальный класс не должен иметь:
- виртуальных функций
- нетривиальных базовых классов
- нетривиальных типов данных
Под словом "тривиальный" понимается наличие:
- тривиальных специальных функций-членов (msdn)
- POD членов (см. ниже)
Тривиальные классы могут быть безопасно скопированы функциями типа memcpy в полной точности.Тривиальность функций членов (отсутсвие управляющего кода) подразумевает:
- выделение памяти под обьект без инициализации
- побайтовое копирование обьекта
- освобождение памяти без очистки
Standard layoutСтандартная структура (standard layout) - это структура (struct), которая не содержит специальных возможностей C++:
- виртуальные функции и виртуальные базовые классы
- несколько уровней доступа (private, protected)
- нестатические члены ссылочного типа
Стандартная структура:
- не имеет члены являющиеся нестандартной структурой
- не имеет базовые классы не являющиеся нестандартной структурой
- не имеет более одного базового класса с нестатическими членами данных
- не имеет двух мест обьявления нестатических членов (например в базовом классе и у себя)
- не имеет более двух базовых (или косвенно) классов
Стандартная структура имеет предсказуемое устройство памяти, так как не содержит данных, которые компилятор мог бы структурировать по своему усмотрению (например в случае наличия public/private/protected) - как написано так и храниться в памяти.Автор: Виталий БутурлинИсточник: https://byurrer.ru/konspektyi/razbor-ponyatij-trivi...-layout-pod.html
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, JavaScript, Программирование] JavaScript за 60 секунд: работаем с картой (Geolocation API, Leaflet.js, Nominatim)
- [JavaScript, Node.JS, Amazon Web Services, ReactJS, Облачные сервисы] Serverless шагает по планете. Сравним SberCloud и AWS
- [Java] Мой конспект с Joker 2020
- [Разработка мобильных приложений, Проектирование и рефакторинг, Компиляторы, Swift, Управление проектами] Как Uber переписал приложение iOS на Swift (перевод)
- [Oracle, PostgreSQL, Java, Microsoft SQL Server, Администрирование баз данных] varchar2 и Unicode для тех, кто ничего не понимает в базах данных Oracle или ORA-12899: value too large for column
- [JavaScript, ReactJS] Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs) часть 3
- [JavaScript, Программирование, Node.JS] Дино (Deno): Создать API для отдыха с помощью JWT (перевод)
- [Высокая производительность, GPGPU, История IT, Процессоры] Software ecosystems: принципы построения
- [Java, Управление разработкой, Микросервисы] Внести массовые изменения в микросервисы, автоматизировать код-ревью и сберечь нервы команде
- [JavaScript, ReactJS] Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs) часть 2
Теги для поиска: #_javascript, #_fermarunet, #_java, #_pod, #_javascript
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:34
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Автор: Виталий БутурлинСодержание: Trivial classТривиальные классы (trivial class) - это классы или структуры, в которых специальные функции-члены предоставляются компилятором (явно отсутствует реализация) либо явно заданы как default. В таком классе нет управляющего кода, так как специальные функции-члены обьявлены (явно или неявно) тривиальными по умолчанию.Кроме того есть дополнительные требования, тривиальный класс не должен иметь:
Standard layoutСтандартная структура (standard layout) - это структура (struct), которая не содержит специальных возможностей C++:
=========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:34
Часовой пояс: UTC + 5