Ich muss einige Header einfügen, die ursprünglich in C in einem C++ - Projekt geschrieben wurden. In den Header-Dateien wird verwendet, was zu einem Syntaxfehler für C++ führt.Makro zum Entfernen des Schlüsselwortes `restrict` beim Kompilieren mit C++
Ich bin auf der Suche nach einem Präprozessor-Makro, das überprüft, ob ich mit einem C++ - Compiler kompiliere und in diesem Fall das Schlüsselwort restrict
entfernt.
das Definieren von 'restrict' auf nichts wäre auch in C zulässig (da der Präprozessor die Quelle transformiert, bevor der C-Compiler es sieht), aber das wäre nicht beabsichtigt. –
@AlexeyFeldgendler deshalb ist es mit '#ifdef __cplusplus' verpackt ... – SomeWittyUsername
wenn Sie die' # define' in den C++ - Code setzen, bevor Sie die C-Header (zusammen mit dem 'extern 'C'' Sie werden brauchen), brauchen Sie nicht einmal das '# ifdef/# endif'. Versuchen Sie minimal invasiv zu sein, dh ändern Sie Ihren C-Code nicht, weil jemand versuchen könnte, die Lib in C++ zu verwenden. Ändern Sie stattdessen den C++ - Code. –