тоже UB? Тут вроде memcpy не вызывается, просто нужные данные оказываются в памяти.
А кто источник нужных данных? Ведь не голые же байты пользователь вручную вводил с клавиатуры? Значит, наверняка, где-то был вызыван конструктор объекта, а дальше цепочка тривиальных копирований байт
Другая программа позвала конструктор, или даже руками собрала нужное представление
Источник данных почти тот же самый, что и malloc'a. Ядро предоставляет процессу страницу памяти, в которой, внезапно, оказываются нужные нам данные (обычно содержимое файла). Ну, и задержка от обращения к этому адресу больше, чем от обычного чтения памяти. Но для процесса (и языка) это одинаковые сущности.
Я именно о первом – конструктор был вызван, значит, всё хорошо, лайфтайм начат (с поправкой на то, что стандарт ничего про ipc не знает) А вот насчёт второго я не уверен с формальной точки зрения
Мне кажется, и первое сильно out of scope стандарта Никакой абстрактной машиной и не пахнет, данные вообще другой версией бинаря записаны могут быть
Обсуждают сегодня