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
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.
OTHER TIPS
Have you considered to use #pragma once ? Most modern compilers support it.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow