170 похожих чатов

Всем привет, может кто-то подсказать разницу POD и не POD?

5 ответов

8 просмотров

POD (Plain Old Data) - несколько устаревшая концепция, означавшая пересечение TrivialType и StandardLayoutType. TrivialType - ограничение на поведение special member functions (конструкторы, деструкторы, присваивание), которое сводится к тому, что есть хотя бы один способ скопировать/переместить/разрушить объект класса обычным копированием его объектной репрезентации (данных в памяти) либо невыполнением каких-либо действий вообще (no-op), т.е. под эти операции не предусмотрено специального поведения. StandardLayoutType - ограничение на состав объекта, которое обеспечивает предсказуемость его объектной репрезентации (порядок размещения данных в памяти) и обычно используется для стабилизации ABI.

Кто-то- Автор вопроса
Sergey Anisimov
POD (Plain Old Data) - несколько устаревшая концеп...

Я это понимаю, что есть тривиальный - это тот, где не определен ни один из конструктровро и тд (на спп реф видел список), а другие - это стандарт элоун. Так было раньше, по крайней мере. А как это влияет именно на код?

Кто-то
Я это понимаю, что есть тривиальный - это тот, где...

Оно по сути должно воспринимать такие типы как тупой массив в памяти. Иначе у тебя какое-то специфичное поведение которое надо по другому обрабатывать.

Кто-то
Я это понимаю, что есть тривиальный - это тот, где...

Яркий пример выше: преобразование указателя на экземпляр к указателю на его первое поле требует StandardLayout. Тривиальность же требуется, например, для свойства implicit-lifetime, которое позволяет создавать объекты неявно при переключении полей union'а или "низкоуровневых" операций создания байтоподобного массива или выделения памяти. Имплементации могут делать оптимизации на основании знания о том, что объект тривиален (это значит, опять же, что он исчерпывающе определяется объектной репрезентацией).

Кто-то
Я это понимаю, что есть тривиальный - это тот, где...

POD можно копировать через memcpy. Не POD требует вызова какого-то особого кода (конструкторы, операторы)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта