Сразу же оговорюсь: я уважаю стандарт :)
"Закон есть закон" (с) Фердинанд Пасторелли
Тем не менее - насколько это серьезно в реальной жизни? Хочется посмотреть на конкретные примеры, где нарушение strict aliasing реально приводит к неприятностям, причем желательно не запутанные примеры с передачей трех разных указателей на одно и то же место в памяти в одну функцию, а что-то типа обнуления массива char через long long?
Еще раз прошу не подозревать в том, что я хочу получить ответ и на его основании наехать на стандарт :)
Вот пример:
char const * test(char const * p_data)
{
reinterpret_cast< int const * & >(p_data) += 1; // пропускаем 4 байта
return(p_data);
}
-O3
mov rax, rdi
ret
-O3 -fno-strict-aliasing
lea rax, [rdi+4]
ret
Online compiler
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости