Да, влезу не в свой огород. Как быть если кому-то захочется (вернее, придется) компилить мой код древним компилятором, скажем, gcc 2.95. Ему придется все переписывать?
This page assumes you are on a modern platform conforming to modern standards and you have no excessive legacy compatability requirements. We shouldn't be globally tied to ancient standards just because some companies refuse to upgrade 20 year old systems.
Как действующий байтодаун с большим стажем, могу сказать - ничего замечательного в статье нет. Совет использовать несколько точек возврата - вообще говно.
Для байтодаунов со стажем трудно найти статью, в которой они нашли бы для себя что-то новое (если они не тупо просиживают штаны в Газмястехэлектронпродукте каком-нибудь).
Впрочем, ты вроде и не триггернулся на фразу «The first rule of C is don't write C if you can avoid it».
Мое мнение, что рекомендацию использовать «#pragma once» надо пропускать через мозг, прежде чем использовать. Ещё несколько лет назад были с этим проблемы. Не факт, что будет работать всюду.
Этот вопрос решается сам собой сразу после того, как сталкиваешься с одинаковыми именами в разных файлах. Почему-то людям плохо понятно, зачем нужна уникальность идентификаторов. А с pragma once такой ошибки не получится допустить.
Можно использовать обе команды, #pragma once и include guards, для написания переносимого кода, что также может принести выгоду от применения #pragma once при оптимизации (если компилятор её поддерживает)
Педивикия говорит что где-то это приводит к какой-то оптимизации. Хорошо если действительно можно оба подхода применять сразу.
Странный совет. Если pragma не поддерживается, компилятор может на неё ругаться, даже ошибкой. А если использовать одинаковые идентификаторы для include guards в разных файлах, pragma once не спасёт — файлы-то разные. В общем, предлагают взять худшее из обоих вариантов.
У меня однажды совпали инклуд-гарды, т.к. я зацепил полубиблиотечный модуль из соседнего проекта. Я подумал, что так не бывает — объявление есть, а варнинг все равно генерится, и через 5 секунд размышлений понял, в чем дело.
То есть потенциально автор статейки может спасти твои 5 секунд, потратив всего несколько минут на чтение этой галиматьи.
По сабжу: капитан заявляет, что если выкинуть легаси, то сишка станет проще.