|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
Есть ли тут UB ?09.03.2020, 12:27. Показов 3634. Ответов 55
Метки нет (Все метки)
Добрый день, не могу разобрать вот такую ситуацию:
0
|
||||||
| 09.03.2020, 12:27 | |
|
Ответы с готовыми решениями:
55
Есть ли тут такие, у кого есть свои идеи ,касающиеся компьютерной безопасности,например, по защите от вирусов?
И есть ли тут вообще список? |
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 10.03.2020, 11:20 | |
|
0
|
|
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
||
| 10.03.2020, 11:21 | ||
|
И, как я уже ответил выше, ни слова ни о каких "попытках доступа" там нет. Если вы это называете "своим пониманием", то мне останется лишь молча развести руками...
0
|
||
|
Неэпический
|
||
| 10.03.2020, 11:22 | ||
|
Там про указатели, но не суть, т.к. в той же самой проклятой спецификации c++, написанной, как вам известно, непонятливыми дядьками, есть такой пунктик не только для ссылок, но и для указателей.
0
|
||
|
Комп_Оратор)
|
|||||
| 10.03.2020, 11:40 | |||||
|
Теперь о мотивации, подробнее раз уж вы хотите о ней поговорить. По факту тема остановилась на большом фрагменте из черновика и объяснении без объяснения. Я не хочу, чтобы новички из тех кто послабее духом, сразу отвернулись от этого языка. TheCalligrapher, вместо попыток анализировать мою нравственность, психику и стиль изложения я предлагаю вам (в третий раз) объяснить, какое место (1-2 строки) из приведенного вами стандарта черновика, конфликтует с местом (тоже 1-2 строки) из кода ТС. Подробно можете не разжёвывать, учитывая вашу реакцию. Что не пойму, - спрошу далее. Нельзя оставлять такую тему в таком состоянии (имхо). Добавлено через 6 минут
0
|
|||||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|
| 10.03.2020, 11:40 | |
|
Н-да... Значит так: исчерпывающие ответы на исходный вопрос я уже дал. А вот эти вот феерические разглагольствования "ни о чем" мне не интересны.
0
|
|
|
Комп_Оратор)
|
|||
| 10.03.2020, 11:46 | |||
|
Добавлено через 4 минуты Ваш ответ говорит о том, что если результат преобразования трактуется как ссылка на объект базового класса то ок, а иначе не ок. Это не про то, что само преобразование не ок: Больше не стану вам досаждать. Всего хорошего.
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 10.03.2020, 11:49 | ||
|
Программа с кастом выше вполне well-formed, т.е. она компилируется, но приводит к UB. Таким образом пункты, которые описывают случаи, когда программа ill-formed нам не интересны, т.к. не имеют отношения к делу.
0
|
||
|
Неэпический
|
||||||||
| 10.03.2020, 13:01 | ||||||||
|
TheCalligrapher, поправит меня, если что, я уверен. ![]()
D производный от класса B, то мы можем выполнить static_cast<D&>(rb);. В данном фрагменте речь идет о типах, о том, что такое преобразование между такими типами разрешено.В красном фрагменте речь идет об объектах, о том, что если при static_cast<D&>(rb) rb является подобъектом базового класса объекта типа D, то всё хорошо, мы получаем ссылку на подъобъект типа D. В ином случае получаем неопределенное поведение.В нашем коде, в памяти лежит объект типа B, который не является подобъектом базового класса объекта типа D, поэтому имеет место неопределенное поведение.
2
|
||||||||
|
Комп_Оратор)
|
||||
| 10.03.2020, 13:02 | ||||
Ещё раз:
Я так это понял. Тогда не ясно, что в коде ТС не так. Я могу привести примеры, где статик каст родителя к наследнику используется в паттернах проектирования и не считается UB. Об этом я и спрашиваю. Croessmah, может я и не верх проницательности, но есть вероятность, что если я не понял то кто-то из новичков может тоже не понять. Момент затронутый в теме не прост как табурет. В нём есть нюансы. Я попытался получить подробный и ясный ответ с объяснением. Вам может показаться диким, но на англоязычных сайтах, люди из комитета по стандартизации - разработчики топовых компиляторов, не считают зазорным писать многостраничные тексты с примерами и пояснениями такими подробными, что диву даёшься. Может и не стоит их копировать, но есть что подсмотреть и намотать на ус. Если интересно, могу привести ссылки.
0
|
||||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 10.03.2020, 13:05 [ТС] | |
|
Помоему тут нет какото интересной ситуации чтоб так долго спорить.
Яж создал ночью тему с действительно прикольной интересной фишкой, когда один виртуальный метод переопределяет несколько абстрактных и ноль внимания.
0
|
|
|
Комп_Оратор)
|
|||
| 10.03.2020, 13:08 | |||
|
Но мы же приводим А к В... Что-то я читаю вверх ногами видимо. Давайте ещё пересмотрю...
0
|
|||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 10.03.2020, 13:10 [ТС] | |
|
Господа, вот более интересная ситуация Насколько корректен такой код ?
0
|
|
|
Неэпический
|
|||
| 10.03.2020, 13:13 | |||
|
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 10.03.2020, 13:16 | |
|
2
|
|
|
Комп_Оратор)
|
|||
| 10.03.2020, 13:17 | |||
|
safdgsagh
Базовый класс - супер класс но его объек включен в наследник enclosing как часть - подобъект. Иначе не ясно. Ладно, до вечера перерыв. Дайте все ещй пару раз попытаться перевести на человеческую речь.
0
|
|||
|
Неэпический
|
||||||||||||
| 10.03.2020, 13:21 | ||||||||||||
A. Мы производим каст к B&, а объект типа A в памяти - самостоятельный объект, а не подобъект объекта типа B.Добавлено через 2 минуты
3
|
||||||||||||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||||
| 10.03.2020, 17:34 | |||||
|
Все предельно четко и понятно.
Все предельно четко и понятно. P.S. Где тут наш argcargv? Это мы тут все "ведемся на толстоту"? Или все таки это "художник так видит" на полном серьезе?
0
|
|||||
|
Комп_Оратор)
|
|||
| 10.03.2020, 18:46 | |||
|
Ну да ладно. Я хочу ещё почитать и подумать. Супер класс подобъект субкласса... Всё это не троллинг. Я пока вижу что при множественном наследовании могут проводиться скрытые вычисления при создании ссылки, которые читают (разыменовывают) память. В этом случае без каких либо конструкторов (упомянутых ТС) реализация может привести к непредсказумым результатам. Для одиночного наследования не должно быть проблем. Но согласен. Интерпретировать стандарт дело неблагодарное. Написано, значит написано.
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 10.03.2020, 19:02 | ||
|
Всегда в С++ было, что подобъект - это базовый класс, а не наоборот.
1
|
||
| 10.03.2020, 19:02 | |
|
Есть ли тут ошибки? У меня С++ виснет и ничего не выдает Есть тут кто работает с++ + 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(). Нажатие. . .
|