|
|
|||||||||||||||||||||
Reset в unique_ptr19.02.2019, 22:35. Показов 11338. Ответов 51
Метки нет (Все метки)
Привет. Что делает эта функция?
затем во временную переменную приняли наш указатель, удаляем теперь созданный указатель... блин, зачем? Зачем здесь в обще этот T* old? нельзя просто так сделать:
на всякий случай оставляю код моего unique_ptr: Кликните здесь для просмотра всего текста
и еще- в конструкторе
0
|
|||||||||||||||||||||
| 19.02.2019, 22:35 | |
|
Ответы с готовыми решениями:
51
В чем отличие warm reset от cold reset? Непонятки с unique_ptr Инициализировать вектор unique_ptr |
|
"C with Classes"
|
|
| 21.02.2019, 10:51 | |
|
0
|
|
|
Комп_Оратор)
|
|
| 21.02.2019, 10:55 | |
|
Добавлено через 1 минуту
0
|
|
|
"C with Classes"
|
||
| 21.02.2019, 11:00 | ||
|
Не по теме:
0
|
||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
||||
| 21.02.2019, 14:09 | ||||
|
Добавлено через 9 минут unique_ptr выбрасывет исключение во время вызова внутри reset, то это приводит к неопределённому поведению. Вызову terminate не гарантирован.
0
|
||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||||
| 21.02.2019, 15:30 | |||||
noexcept(false)?reset в Requires написано, что делитер не должен (shall not) бросать исключения.
reset его нет.)
1
|
|||||
|
Комп_Оратор)
|
|||
| 21.02.2019, 15:50 | |||
|
Хм... Что же выходит? Выходит, что главная причина по которой исключение из деструктора, это зло - это тот факт, что явно он не запускается (кроме танцев после placement new) и поэтому нет способа отловить данное событие внутри самой функции перед закрытием её рабочей области? Если есть ещё какие-то (кроме - плохо и некрасиво) причины, хотелось бы их услышать. Раздел - новичковский, думаю многим будет интересно. Просто утверждения: -"Так делать нельзя", мне лично мало. Но допустим. Допустим каждый сам себе не злобный не буратино и никто не напишет делетер который возьмёт да и выбросит исключение. Как тогда может стать объект невалидным в вопросе ТС?
0
|
|||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||
| 21.02.2019, 16:19 | |||
unique_ptr::reset, то порядок присвоения и вызова делитера там такой не из-за того, что делитер может выбросить исключение.
get_deleter(), а get_deleter()(old_p) может разрушить вызывающий его unique_ptr.
2
|
|||
|
Комп_Оратор)
|
||
| 21.02.2019, 19:08 | ||
unique_ptr. get_deleter() это же метод класса? Как же он может разрушить объект (delete this ? ). Очень странный побочный эффект...
0
|
||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 21.02.2019, 19:11 | |
|
IGPIGP, я же говорю, имеется в виду
get_deleter()(old_p), а не get_deleter()
0
|
|
|
Комп_Оратор)
|
||
| 21.02.2019, 20:50 | ||
old_p может завалить вызывающий объект unique_ptr. Ну то есть, это тот случай, когда я чувствую себя old_p
0
|
||
| 21.02.2019, 20:50 | |
|
Unique_ptr, семантика перемещения Unique_ptr и деструктор класса
QwtPlotItem и std::unique_ptr
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
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(). Нажатие. . .
|