Иногда, если у вас есть несоответствующие скобки в заголовочном файле, над которым вы работаете, вы можете получить странные ошибки в других, совершенно правильных файлах. Например:
foo.hpp :
namespace foo {
/* etc. etc */
// } // whoops! no closing brace
main. cpp:
#include "foo.hpp"
#include "bar.hpp"
int main() { /* etc. */ }
компилятор, скорее всего, будет жаловаться на неправильные определения в bar.hpp
.
Мой вопрос: могу ли я заставить компилятор заметить наличие открытых скобок на границе файла и предупредить или выдать ошибку в этом случае?
Примечания:
- Эта проблема также частично актуальна и в C, но, возможно, в меньшей степени - там нет пространства имен.
- Я спрашиваю о g ++ и clang ++, но вы можете упомянуть и другие компиляторы.
- Я понимаю, что компилятор анализирует только предварительно обработанный C ++, но - который включает комментарии с исходными номерами строк файла, поэтому он может сказать, когда файл "заканчивается".