#pragma once vs Include Guards: Was wählen zum Schutz vor doppeltem Einfügen?
Hallo zusammen! Ich bin ein Anfänger in C++ und bin schon mehrmals auf das Problem des doppelten Einfügens von Header-Dateien gestoßen. Zum Beispiel habe ich diesen Code:
\n\n// math_utils.h\n#ifndef MATH_UTILS_H\n#define MATH_UTILS_H\n\nint add(int a, int b) { return a + b; }\n\n#endif\n\n// main.cpp\n#include "math_utils.h"\n#include "math_utils.h" // versehentlich zweimal eingefügt\n\nint main() {\n return add(2, 3);\n}\n\n\nMit include guards funktioniert alles, aber mir ist aufgefallen, dass viele moderne Projekte (z.B. aus Boost) #pragma once verwenden. Ich habe gelesen, dass dies eine nicht standardisierte Direktive ist, aber sie wird von allen wichtigen Compilern unterstützt.
Mich interessiert:
\n- \n
- Gibt es echte Performance-Probleme bei include guards? \n