На днях в интересном порядке попалось на глаза несколько ссылок, касающихся тонкостей C++ (и C).
Сначала это была презентация Deep C (and C++) (о которой я уже писал года полтора назад).
А затем ссылки на три записи в блоге LLVM, касательно оптимизации кода и взаимного влияние на это такой штуки, как undefined behaviour: What Every C Programmer Should Know About Undefined Behavior: #1, #2, #3 (ссылки были найдены здесь).
Интересное чтиво. Для действующих С++ (и C) разработчиков к прочтению обязательно, имхо.
Так же захотелось взять за правило бить по рукам тех, кто слишком много знает про особенности компиляторов и полагается в своем коде на тонкости стандарта. Чем проще и однозначнее код, тем меньше геморроя будущим поколениям. Хотя, конечно, полезно знать, чем отличается инициализация статической локальной переменной от автоматической. Но все же лучше, когда человек явно пишет static int i = 0, чем static int i. А еще лучше, когда статические переменные вообще не используются ;)
Комментариев нет:
Отправить комментарий