Include guard style, C++
-
30-06-2021 - |
質問
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
解決
They are include guards, preventing double inclusion of files. So they should be defined once per file, not per class or function or whatever.
他のヒント
Have you considered to use #pragma once ? Most modern compilers support it.
所属していません StackOverflow