Include guard style, C++
-
30-06-2021 - |
Question
I have a .h file which contains several class definitions. I'd like to use C++'s include guards in this file; however, I was wondering which way of using the include guards is considered proper/correct?
One guard protecting everything
#ifndef FOO_BAR
#define FOO_BAR
class Foo
{
};
class Bar
{
};
#endif
or multiple separate guards.
#ifndef FOO
#define FOO
class Foo
{
};
#endif
#ifndef BAR
#define BAR
class Bar
{
};
#endif
La solution
They are include guards, preventing double inclusion of files. So they should be defined once per file, not per class or function or whatever.
Autres conseils
Have you considered to use #pragma once ? Most modern compilers support it.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow