Re[5]: Нужна ли защита от повторного включения
От: Андрей Тарасевич Беларусь  
Дата: 21.01.22 17:01
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Теоретически, pragma once должна быть быстрее, так как компилятор даже не будет открывать повторно этот файл, а в случае с гардами таки надо препроцессировать. Поэтому — pragma once. А гарды — на всякий случай, вдруг попадётся компилятор, в котором её нет. Хотя, конечно, это маловероятно, поэтому я стал ленится делать гарды


`#pragma once` не выжила именно именно потому, что в %99.9 случаев использование include guards является тотальным по отношению к включаемому файлу, то есть полностью функционально эквивалентным `#pragma once`. Такое использование include guards легко распознается препроцессором, который в такой ситуации не будет делать никакого "повторного открытия" и ничего препроцессировать заново не будет.

Другими словами, если препроцессор в состоянии реализовать предполагаемую функциональность `#pragma once`, то он в состоянии реализовать все это и без `#pragma once`- на основе умной обработки include guards. Именно потому от `#pragma once` и отказались.
Best regards,
Андрей Тарасевич
Отредактировано 21.01.2022 17:04 Андрей Тарасевич . Предыдущая версия . Еще …
Отредактировано 21.01.2022 17:03 Андрей Тарасевич . Предыдущая версия .
Отредактировано 21.01.2022 17:03 Андрей Тарасевич . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.