[JavaScript] Разбор понятий: trivial type, standard layout, POD

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
14-Дек-2020 18:32

Автор: Виталий БутурлинСодержание:
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, #_fermarunet, #_java, #_pod, #_javascript
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 10:34
Часовой пояс: UTC + 5