Gibt es bei Unity-Builds irgendwelche Kompromiss-/Korrektheitsprobleme zwischen #pragma Once und include Guards? [DuplikC++

Programme in C++. Entwicklerforum
Anonymous
 Gibt es bei Unity-Builds irgendwelche Kompromiss-/Korrektheitsprobleme zwischen #pragma Once und include Guards? [Duplik

Post by Anonymous »

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

Code: Select all

#pragma once
//impl1.h stuff
Der Grund, warum ich frage, ist, dass die Semantik des Header-Schutzes meiner Meinung nach absolut sicher zu sein scheint, dass

Code: Select all

#include "impl2.cpp"
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post