История изменений
Исправление Siborgium, (текущая версия) :
Это лишь показывает, что массивы не надо копировать.
Нет, это показывает, что ничего копировать не нужно, потому что в общем случае копирование не устраняется компилятором.
Но достаточно переписать так и никаких копий
Нет, это чушь: ты не можешь знать, где копирование было устранено, а где нет, не посмотрев дизассемблированный код – который ты смотреть не будешь, пока не появится необходимость.
Кстати, удачи получить «не ЮБ» при работе с нетривиально копируемыми типами.
Но у тебя ЮБ, а у меня - нет.
Но меня это не волнует, потому что это работает и будет работать. Если будет волновать – есть -fno-strict-aliasing
, std::launder и другие способы решить проблему.
Исходная версия Siborgium, :
Это лишь показывает, что массивы не надо копировать.
Нет, это показывает, что ничего копировать не нужно, потому что в общем случае копирование не устраняется компилятором.
Но достаточно переписать так и никаких копий
Нет, это чушь: ты не можешь знать, где копирование было устранено, а где нет, не посмотрев дизассемблер – который ты смотреть не будешь, пока не появится необходимость.
Кстати, удачи получить «не ЮБ» при работе с нетривиально копируемыми типами.
Но у тебя ЮБ, а у меня - нет.
Но меня это не волнует, потому что это работает и будет работать. Если будет волновать – есть -fno-strict-aliasing
, std::launder и другие способы решить проблему.