Ist es möglich, einen C- oder C++ - Standard für nur einen Teil einer Quelldatei zu erzwingen? Ich möchte sicherstellen, dass meine Quelldatei C90-kompatibel ist, aber es hängt von einigen Headern ab, die C99 benötigen. Die Übereinstimmung dieser Header ist für mich momentan nicht wichtig (ich kann vorläufig mit C99 kompilieren), aber ich möchte den Aufwand minimieren, der erforderlich ist, um meinen Code in Zukunft auf eine restriktivere Plattform zu portieren.Wenden Sie den Sprachstandard nur auf einen Teil einer Quelldatei an?
Kurz gesagt, ich möchte einen Sprachstandard für die gesamte Datei mit Ausnahme der enthaltenen Header gelten. Angesichts der Tatsache, dass die Header-Inclusion in C und C++ funktioniert, stelle ich fest, dass das generelle Problem darin besteht, einen Sprachstandard auf einen beliebigen Teil einer gegebenen Quelldatei anzuwenden.
Ich arbeite gerade mit GCC, aber ich bin auch neugierig, ob dies mit anderen Compilern (msvc, clang) möglich ist.
Aber Sie wissen, dass es einige Dinge gibt, die für ganze Dateien relevant sind, "Interaktionen" zwischen Quelldateien und ganzen Programmen im Standard? Teile der Quellcodedateien existieren nicht in ihrem eigenen Vakuum. – deviantfan
Was ist der Sinn? –
@EugeneSh. - Die Idee ist, den Compiler zu verwenden, um die Einhaltung von Standards zu erzwingen. Selbst wenn es nicht machbar ist, alle Abhängigkeiten der Datei so zu überarbeiten, dass sie jetzt C90 entsprechen, wäre es nützlich, in der Lage zu sein zu behaupten, dass die Quelldatei in der Entwicklung keine vom alten Standard nicht unterstützten Sprachkonstrukte verwendet. –