Удалить предупреждения #pragma once
Я использую #pragma once
в моих .cpp
s и .hpp
s, и из-за этого я получаю предупреждение для каждого файла, который его использует. Я не нашел никакой возможности отключить этот вид предупреждения, только вещь #ifndef MY_FILE_H #define MY_FILE_H /*...*/ #endif
.
Итак, вы бы рекомендовали мне заменить каждый #pragma once
на ifndef
s?
В заголовке:
#define MYFILE_H
// all the header
И в других файлах:
#ifndef MYFILE_H
#include "myfile.hpp"
#endif
// the rest of the file
Как вы думаете, может быть, лучше использовать его вот так? Или есть возможность отключить #pragma once
предупреждения в GCC, что я не знаю?2 ответа:
Общий подход состоит в том, чтобы поместить охранника в .только файл h:
#ifndef MYFILE_H #define MYFILE_H // all your myfile.hpp here #endif
Или
#pragma once // all your myfile.hpp here
Остальные файлы (прочие .cpp) ничего не должен делать в отношении охранников. Вы не должны получать предупреждения, делая это.