Gibt es eine Möglichkeit, einen Fehler zu verursachen, wenn eine Quelldatei in einem Build mehrfach verarbeitet wird? Ich weiß, dass Sie #pragma once
und #ifndef
Art von Dingen verwenden können, aber das schützt es nur davor, einmal in einer einzigen Kompilierungseinheit enthalten zu sein. Ich möchte sicherstellen, dass es nur einmal über einen gesamten Build mit mehreren Projekten in einer Lösung in Visual Studio enthalten/kompiliert wird.So stellen Sie sicher, dass eine Datei nur einmal in einem Build verarbeitet wird
Ich verstehe, dass eine normale CPP-Datei nur einmal in der Regel verarbeitet wird. Aber wenn andere Dateien #include
d .cpp-Datei, könnte es mehrere Male verarbeitet werden (Ich weiß, das ist nicht typisch, aber es erklärt am besten die Situation). Also versuche ich mich vor versehentlichen mehrfachen Einschlüssen der Datei zu schützen.
_ "Wenn andere Dateien #cpp-Datei enthalten" _ das wäre schrecklich falsch, weil es eine 'cpp' Datei ist. Meinst du eine Headerdatei (z.B. 'hpp')? –
Alternative Lösung: Suchen Sie nach allen Stellen, an denen diese '.cpp' Dateien fehlerhaft enthalten sind, und beheben Sie diese. – user0042
@underscore_d Es ist nicht unbedingt falsch (siehe das Ende dieses Eintrags): https://isocpp.org/wiki/faq/templates#separate-template-fn-defn-from-decl – mentics