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

Сообщение Re[6]: а давайте напишем новый asio ! от 05.11.2025 11:06

Изменено 05.11.2025 11:17 so5team

Re[6]: а давайте напишем новый asio !
Здравствуйте, SaZ, Вы писали:

S>>А то получится, что в стандарте std::start_lifetime_as есть, а по факту в стабильных версиях компиляторов -- все еще нет.


SaZ>Вот интересно, а почему тогда не депрекейтнули std::bit_cast? Вроде как он теперь не нужен?


Так вроде бы use cases разные.
start_lifetime_as -- это когда у вас есть область памяти A, в которой лежат, скажем, std::byte. А вы хотите иметь корректный указатель на double, который указывает в эту область.

bit_cast -- это когда у вас в области памяти A лежат, скажем, std::byte, а вы хотите получить из них новое значение, скажем, типа double. Причем это именно что будет новое значение, никак не связанное с областью памяти A.

Т.е., как я понимаю, bit_cast может быть реализован через start_lifetime_as, но наличие start_lifetime_as не отменяет use cases, в которых bit_cast может быть полезен.
Re[6]: а давайте напишем новый asio !
Здравствуйте, SaZ, Вы писали:

S>>А то получится, что в стандарте std::start_lifetime_as есть, а по факту в стабильных версиях компиляторов -- все еще нет.


SaZ>Вот интересно, а почему тогда не депрекейтнули std::bit_cast? Вроде как он теперь не нужен?


Так вроде бы use cases разные.
start_lifetime_as -- это когда у вас есть область памяти A, в которой лежат, скажем, std::byte. А вы хотите иметь корректный указатель на double, который указывает в эту область.

bit_cast -- это когда у вас в области памяти A лежит, скажем, std::uint64_t, а вы хотите получить оттуда новое значение, скажем, типа double. Причем это именно что будет новое значение, никак не связанное с областью памяти A.

Т.е., как я понимаю, bit_cast может быть реализован через start_lifetime_as, но наличие start_lifetime_as не отменяет use cases, в которых bit_cast может быть полезен.