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

Товарищи, помогите прояснить некоторые моменты. 1) http://eel.is/c++draft/basic.life#6 говорит ... after

the lifetime has ended and before the storage reused or released..., однако Example 1 на B::mutate как мне кажется неуместен, так как прямо в нем имеется комментарий, что storage reused. Получается здесь UB, так как попытка взаимодействия с "мёртвым" объектом? Или же подразумевается, что указатель, на основе которого формируется this не был "переназначен" после lifetime end?
2) Было бы здесь уместно применить
std::launder(this)->f();
? Или std::launder с каким-то кастом?
3) Даёт ли стандарт определения словам reused, released?
4) ISO/IEC 9899:202x(С2х) 6.2.4 говорит, что The value of a pointer becomes indeterminate when the object it points to (or just past) reaches the
end of its lifetime. Выполняется ли это в С++? Или лишь это http://eel.is/c++draft/basic.memobj#basic.stc.general-4?
5) В свете последней ссылки, с чем связаны указатели: с объектом или хранилищем?
6) http://eel.is/c++draft/basic.life#8 transparently replaceable работает лишь для immediate after замены о1 на о2. или же это свойство может проходить через серию замен, к примеру https://godbolt.org/z/1zcTjh

1 ответов

22 просмотра

1) весь тот пример про то, как объект по указателю pb/this, прекращает свое существование, а storage остается и указатели на него остаются действительными. да, UB там тогда, когда при помощи этого указателя делается что-то, для чего требуется существование объекта. никакого переназначения не надо 2) нет, std::launder никак не поможет, потому что объекта нет. но на горизонте маячит еще одна библиотечная функция на эту тему: std::start_lifetime_as() 3) не нахожу их толкования ни в стандарте, ни в отдельном стандарте с ИТ-терминологией, что наводит на мысли, что определений в обычных толковых словарях достаточно 4) не рекомендую приплетать сюда Си, а то совсем запутаетесь. я не знаю его объектную модель, но подозреваю, что она отличается. 5) указатели связаны с хранилищем 6) не нахожу в формулировке этого пункта свидетельств, что каждая замена в серии должна удовлетворять условиям прозрачной замены

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта