Angenommen, ich habe einen Unity-Build:
Code: Select all
//impl1.h
//impl1.cpp -> #include s impl1.h
//impl2.h
//impl2.cpp -> #include s impl2.h AND impl1.h
//main.cpp
#include "impl1.cpp"
#include "impl2.cpp"
int main(){
//stuff
}
Spielt es eine Rolle, dass impl1.h so ist:
Code: Select all
#ifndef IMPL1_H
#define IMPL1_H
//impl1.h stuff
#endif
im Gegensatz zu
Der Grund, warum ich frage, ist, dass die Semantik des Header-Schutzes meiner Meinung nach absolut sicher zu sein scheint, dass
verarbeitet impl1.h nicht erneut. Gibt es bei #pragma Once und der Annahme, dass #include " " eine mehr oder weniger einfache Textersetzung durchführt, Probleme damit, dass der Compiler bei der Verarbeitung von main.cpp mehrere #pragma Onces sieht, die derselben oder unterschiedlichen Header-Dateien entsprechen?