Информация об изменениях

Сообщение Re[94]: Когда это наконец станет defined behavior? от 21.08.2023 13:04

Изменено 21.08.2023 13:05 so5team

Re[94]: Когда это наконец станет defined behavior?
Здравствуйте, σ, Вы писали:

S>>Оно понятно, что в C++23 появился std::start_lifetime_as, посредством которого можно сделать:

S>>
σ>alignas(T) std::byte buffer[sizeof(T)];
σ>read_some_data(buffer);
σ>const T * ptr_to_immutable_value = std::start_lifetime_as<const T>(buffer);
σ>

S>>Но в этом случае мы, по сути имеем лишь константный указатель на неконстантный объект.
rly
σ>std::start_lifetime_as<const T> создаёт объект

Создает? Да ладно!

Он, вроде бы, к созданию объекта чуть меньше, чем никак. Это всего лишь указание компилятору считать полученный указатель валидным указателем на объект, время жизни которого было начато вне поля зрения компилятора.
Re[94]: Когда это наконец станет defined behavior?
Здравствуйте, σ, Вы писали:

S>>Оно понятно, что в C++23 появился std::start_lifetime_as, посредством которого можно сделать:

S>>
σ>alignas(T) std::byte buffer[sizeof(T)];
σ>read_some_data(buffer);
σ>const T * ptr_to_immutable_value = std::start_lifetime_as<const T>(buffer);
σ>

S>>Но в этом случае мы, по сути имеем лишь константный указатель на неконстантный объект.

σ>std::start_lifetime_as<const T> создаёт объект


Создает? Да ладно!

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