|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||||||
Почему тут UB?28.02.2020, 08:59. Показов 3393. Ответов 40
Метки нет (Все метки)
Приветствую всех. Есть такой код:
0
|
||||||
| 28.02.2020, 08:59 | |
|
Ответы с готовыми решениями:
40
Почему тут ошибка
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|||
| 28.02.2020, 18:36 | |||
|
Или пока нет сегфолта то UB это не UB?
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||||||
| 28.02.2020, 21:39 | ||||||||||||
|
Добавлено через 33 минуты Кстати, если делать как в том видео, вызывать new для памяти выделенной по malloc, то там объект будет проинициализирован нулями, конструктором по-умолчанию (в майкросовфте, во всяком случае)
Добавлено через 11 минут Хотя, если без скобок, то нормально
0
|
||||||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 28.02.2020, 22:04 | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.02.2020, 22:50 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 28.02.2020, 23:01 | |||||
|
из серии: как на ровном месте создать себе проблему, и потом начать её героически преодолевать. DrOffset, можешь объяснить: в чем выражаеццо UB?
0
|
|||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||||||
| 28.02.2020, 23:07 | |||||||||||||
Также как и этот код
Поберегу нервы свои.
2
|
|||||||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 29.02.2020, 11:07 | |||||||
|
В общем, вот код Кликните здесь для просмотра всего текста
При добавлении скобок в оператор new, я не смог дождаться окончания его работы. Без них отрабатывет ~1ms. Т.е. простое добавление скобок может увеличить сложность алгоритма, без всяких усилий мс твоей стороны. Т.е. нет возможности определить поведение своего класса на момент декларации. Если добавляешь конструктор test() {;}, всё работает нормально, но он перестаёт быть is_trivially_constructible_v. И это никак не отследить- никаких ворнингов, ничего. PVS тоже молчит. И скобки для new, это полбеды. Беда в том, что они могут быть вызваны неявно, в шаблоне - случай с init(). Непонятно, нахрена компилятор генерит конструктор по-умолчанию для класса, где это не требуется? Добавлено через 14 минут И, главное, что меня интересует - как от таких просёров застраховаться в compile-time?
0
|
|||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 29.02.2020, 13:23 | |||
|
Надо в правую часть смотреть. И в ссылку, которую я дал.
1
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||||||
| 29.02.2020, 14:03 | ||||||||||||
|
Потому что выглядит оно, как откровенный просёр - как то сложно интуитивно понять, почему вот такой код приведёт к генерации memset
Это источник ошибок, вернее проблем с производительностью. Сижу, башку ломаю, как их избежать. Единственное, что пока придумал - запретить делать test() = default;
0
|
||||||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 29.02.2020, 14:17 | |||||||
|
Добавлено через 5 минут
0
|
|||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 29.02.2020, 14:17 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 29.02.2020, 14:18 | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 29.02.2020, 14:18 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 29.02.2020, 14:22 | ||
|
Хочешь засовывать такой огромный тип в контейнер или в обобщенный инициализатор - думай о том, что он будет его инициализировать весь. Если это не подходит, значит обобщенный инициализатор тоже не подходит, т.е. у нас частный случай.
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 29.02.2020, 14:28 | ||
|
И что-то непохоже это на частный случай.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 29.02.2020, 14:43 | |||
|
Что если ты засунешь, например, POD структуру в vector, то он забъет все ее объекты нулями?
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 29.02.2020, 14:50 | ||
|
Не так часто пользуешься pod-типами, да ещё и инициализируешь их со скобками, чтоб заметить такие проблемы. Ну и инициализация вне конструкторов и default не так давно появились. Соответственно, не уверен, что раньше эта проблема проявлялась для не-pod.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 29.02.2020, 14:53 | |
|
oleg-m1973, этому правилу по меньшей мере 25 лет. В С++98 была несколько иная формулировка, но смысл такой же.
В С++11 все чуть усложнилось - это да.
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 29.02.2020, 15:06 | ||
|
И я вот тоже подозреваю, что это какой-то старый просёр, который уже поздно исправлять.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 29.02.2020, 15:12 | |
|
oleg-m1973, то, что это не согласуется с твоими представлениями, не означает, что это "просёр".
1
|
|
| 29.02.2020, 15:12 | |
|
Почему тут нужен амперсанд (&) ? Почему не записывает в textbox? В чем тут ошибка? Не могу понять почему не работает и где тут ошибка Гибридное видео в ноутах... почему у многих тут проблемы???
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|