|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
Есть ли тут UB ?09.03.2020, 12:27. Показов 3630. Ответов 55
Метки нет (Все метки)
Добрый день, не могу разобрать вот такую ситуацию:
0
|
||||||
| 09.03.2020, 12:27 | |
|
Ответы с готовыми решениями:
55
Есть ли тут такие, у кого есть свои идеи ,касающиеся компьютерной безопасности,например, по защите от вирусов?
И есть ли тут вообще список? |
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|
| 10.03.2020, 19:04 | |
|
0
|
|
|
Комп_Оратор)
|
|||
| 10.03.2020, 19:14 | |||
|
Если объект типа «cv1 B» на самом деле является подобъектом базового класса это что значит? В это наследник или родитель? По смыслу того, что объясняет Croessmah, - родитель, который содержится в объекте наследника. Но можно понять и что B - подобъект базового класса D. Черт-те что. DrOffset, спасибо за объяснение.
0
|
|||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 10.03.2020, 19:23 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||
| 10.03.2020, 19:30 | |||||
Может быть две ситуации. *) Мы создали объект B (только объект B) и кастим ссылку на него к D. Это допускается синтаксисом и отношением между типами, потому что static_cast видит, что D наследник B - программа well-formed. Однако Мы не создавали D, у нас был только B. Получаем UB. *) Мы создали объект D, ссылаемся на него через ссылку на B. Далее делаем static_cast к D. Это допустимо, потому что "B is actually a base class subobject of an object of type D". Base class subobject объекта класса D - это объект типа B, B - это базовый класс, а подобъект он потому, что является частью "объемлющего" объекта D. Эта терминология в С++ изначально. Никто ее не трогал, не менял. Добавлено через 1 минуту
1
|
|||||
|
Комп_Оратор)
|
|||
| 10.03.2020, 19:44 | |||
Я не смог прочесть, это именно так с первого раза. Именно этот момент я и просил объяснить.
0
|
|||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 10.03.2020, 20:57 | |||
|
1. Base class subobjects ("подобъекты базовых классов" или просто "базовые подобъекты") 2. Member subobjects ("подобъекты-члены", т.е. поля класса) 3. Элементы массива (по отношению к самому массиву) Все эти три словосочетания обозначают вполне конкретные сущности и являются неделимыми. Вы в своем предыдущем переводе перевели "base class subobject" как "подобъект базового класса", что вполне корректно. Но затем вы взяли и "распилили" это словосочетание пополам на две части: "подобъект" и "базового класса". И затем вы зачем-то решили, что вторая часть относится к D. То есть якобы D вдруг стал "базовым классом". Это неверный перевод. Все словосочетание "подобъект базового класса" является неделимым и целиком относитcя к B и только к B. Процитированная вами фраза лучше переводится как
2
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 11.03.2020, 00:44 | |||
|
и ему до лампочки dynamic-type объекта. тогда на выходе так же закономерно получим фигню. вот только поведение самого статик_ассерта при этом вполне себе определенное. потому что оно независит от состояния объекта. не?
0
|
|||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 11.03.2020, 01:18 | |||
static_cast зависит от run-time значения аргумента. Поэтому ни о каком "static_cast работает в компалтайме" не может быть и речи. Более того, в "компалтайме" ничего никогда не работает. Даже понятия такого не существует. В компалтайме только генерируется код. А работать этот код может только в run-time.Тут все очень просто: Если стандарт языка говорит, что static_cast не "до лампочки" динамический тип объекта, значит static_cast не "до лампочки" динамический тип объекта. Если стандарт языка говорит, что данный static_cast порождает неопределенное поведение, значит данный static_cast порождает неопределенное поведение.Все остальное - бессмысленные разглагольствования из серии "у Коляна Сиплого из третьего подъезда все работает".
0
|
|||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|||
| 11.03.2020, 07:52 | |||
|
Лучше бы занялись вычищением неправильного использования терминологии в стандарте.
0
|
|||
|
Комп_Оратор)
|
|||||||||||||||||
| 11.03.2020, 11:42 | |||||||||||||||||
|
UB и неопределённость результата. Для С++ это имхо не выгодная тема. Когда пытаются скрыть какашку говорят о фиче. Например о контекстной силе. Вот простое выражение:
Никогда. some_adress может быть инициализирован нулём или не инициализирован вовсе. Кроме того, там может присутствовать неподходящий адрес. Так выходит это UB? А выход за границу массива (пресловутый), это UB? Там тоже по виду выражения нельзя сказать чем дело кончится. Именно действительные ран тайм значения определяют результат обращения по индексу. Что касается интерпретации стандарта, то это дело неблагодарное, но без интерпретации знание становится религией. Особенно учитывая язык которым писан черновик. Именно поэтому разговоры программистов о стандарте так напоминают разговоры старшекласниц о любви и дружбе. И дело тут не в громкости и влажности. Слов и глаз конечно. А в яркости эмоций на фоне отстранённости от сути. Я рискну предположить, что вопрос о преобразовании вниз от наследника к базовому связан исключительно с размещением. Тут, мне кажется, Croessmah, оказался близок к сути вопроса:
0
|
|||||||||||||||||
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 11.03.2020, 12:21 | |
|
IGPIGP, твоя писанина была бы отличным примером для учебника по психиатрии/психопатологии (раздел «расстройства/нарушения мышления», подраздел «резонёрство»).
0
|
|
|
Комп_Оратор)
|
||
| 11.03.2020, 13:14 | ||
|
0
|
||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 11.03.2020, 20:38 | |||
|
Во-вторых, да, в обычных повседневных реализациях даже при одиночном наследовании адрес предка может не совпадать с адресом потомка. Например в ситуациях, когда предок не полиморфен, а потомок - полиморфен. Никакого "маразма" в этом нет: из практических соображений намного важнее и эффективнее обеспечить хранение указателя на VMT в самом начале объекта, чем обеспечивать никому не нужное совпадение адреса предка с адресом потомка.
0
|
|||
|
Комп_Оратор)
|
||||
| 11.03.2020, 22:27 | ||||
|
0
|
||||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||||||||||||||||||||||
| 11.03.2020, 22:32 | |||||||||||||||||||||||
1
|
|||||||||||||||||||||||
|
Комп_Оратор)
|
|
| 11.03.2020, 22:34 | |
|
Убедили)
0
|
|
| 11.03.2020, 22:34 | |
|
Есть ли тут ошибки? У меня С++ виснет и ничего не выдает Есть тут кто работает с++ + intel xeon phi 5110p ? Даны натуральные числа n, k. Проверить, есть ли в записи числа nk цифра m. тут число n в степени k, то есть k Тут есть профессионалы по JS Тут есть Ошибка? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|