Каковы изменения, если таковые имеются, правилам инициализации memcpy в новом стандарте?

Насколько мне известно, memcpy в неинициализированное хранилище не может безопасно использоваться для создания копии исходного объекта.

Однако в этот поток за последний год в открытом списке WG21 "Ub" участник ссылается на новый срок жизни memcpy правила инициализации:

Это, похоже, не поднимается до уровня отчета об ошибке, но может иметь отношение к новым правилам инициализации жизни memcpy. Будут ли они приписать некоторый статический тип в исходный и конечный байты?

В зависимости от контекста вопроса и небольшого количества примерного кода типа-стирания, он может быть связан с созданием новых объектов в aligned_storage через memcpy.

Поиск, как я мог, я не могу найти ссылку на новые правила. Мне особенно любопытно, если они применимы только к замене содержимого уже созданного объекта или изменению ситуации вокруг потенциального создания объекта в неинициализированной памяти.

Ответ 1

Формулировка немного изменилась, но общая идея не изменилась. Из intro.object:

Объект создается определением новым выражением при неявном изменении активного члена объединения или при создании временного объекта ([conv.rval], [class.temporary]).

Это единственные четыре способа создать объект на С++. memcpy не попадает ни в один из этих четырех условий и, следовательно, теперь он (и никогда не имел) создал жизнь (неявное изменение активного члена объединения может быть выполнено только через =, а не через memcpy).

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