Сразу же оговорюсь: я уважаю стандарт :)
"Закон есть закон" (с) Фердинанд Пасторелли
Тем не менее - насколько это серьезно в реальной жизни? Хочется посмотреть на конкретные примеры, где нарушение 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как создать правильно создать заголовочный файл для структур? Пытаюсь так, не выходит: structuresh
Написать программу, в которой объявлен массив из 16000 элементов и инициализирован так, что значение элемента массива равно его порядковому...
Вот,учу списки, и не понимаю почему не выводит отсортированный список
Имеется текстовый файл, содержащий действительные числаКоличество чисел в строке может быть любым, количество строк, не превосходит 100