проекте вместо include guard'a
#pragma once
Использовать конструкцию
#ifndef HEADER
#define HEADER
...
#endif
Проект компилируется и корректно работает, но в консоль отладки начали валиться сообщения типа
CMakeFiles/Project.dir/compiler_depend.make:[1-1850]: warning: NUL character seen; rest of line ignored
Что-то не так с мэйкфайлами? Может что в симэйке подкрутить надо?
Зачем вместо pragma once использовать include guard?
Точно нет
ну пока аргументов против не было слышно
работает, да не везде, т.к. в стандарт ни в один не входит
А где не работает?)
На моем опыте #pragma once несколько раз работал неправильно. Из-за симлинков возможно. С другой стороны, guards тоже несколько раз работали неправильно, как из-за невнимательного копипаста, так и по историческим причинам. Аксиома Эскобара, в общем.
дейфайнами крути как хочешь: и андефы есть, и можно дефайнуть раньше, и пуш/поп. А вот с прагмой ничего не сделать, она убивает гибкость
Ага, только с дефайнами компилятору еще весь файл процессировать нужно
Обсуждают сегодня