Есть ли ситуации, в которых хранилище объекта может измениться в течение срока его службы?

Я всегда предполагал, что объект начинается и заканчивает свое время жизни в одной и той же ячейке памяти, но недавно я столкнулся со сценарием, в котором мне нужно быть уверенным. В частности, я ищу гарантию от стандарта, что независимо от того, какие оптимизации выполняет компилятор, адрес, по которому строится объект, является тем же, из которого вызывается деструктор, из которого ... и что его деструктор действительно гарантированно будет вызван из этого места, если программа не завершается.

Я всегда воспринимал эти вещи как должное, но при ближайшем рассмотрении я не могу найти гарантию, и есть некоторый язык вокруг копирования и переноса, который я не знаю, как интерпретировать. Я надеюсь, что некоторые из наиболее знающих стандарты людей могут указать мне на главу и стих.

14
задан JaMiT 15 August 2019 в 20:45
поделиться