Wenn Sie Codevorlagen in Eclipse CDT definieren, können wir eine Variable namens ${include_guard_symbol}
verwenden, die übersetzt zu MYFILE_H
.
Ich hätte gerne etwas expliziteres: SRC_MYFOLDER_MYFILE_H
.
Ich habe die Schritte in eine Antwort auf Stack Overflow-Frage Customizing include-guard für Eclipse CDT ausgeführt / a>, aber alles, was ich bekomme ist, dass ${include_guard_symbol}
eine leere Zeichenfolge zurückgibt! Ich habe auch andere verwandte Fragen zu Stack Overflow über das Hinzufügen des Namensraums zum Include-Wächter gesehen, aber das ist nicht das, was ich suche für.
Ich verwende Eclipse Version 3.5.2 mit CDT Version 6.0.2.
Gibt es eine andere Möglichkeit, das gewünschte Ergebnis zu erzielen?
Die älteste Version, die ich installiert habe, ist 3.7 und ich habe dort und auf 4.2 getestet und der Verweis-Link macht genau das OP will. (Das OP verwendet 3.5.2). Für alle, die in Zukunft hierher kommen, sind die Schritte
\.metadata\.plugins\org.eclipse.core.runtime\settings
org.eclipse.cdt.ui.prefs
in einen Texteditor codetemplates.includeGuardGenerationScheme=2
Ich habe einen Ordner namens MyFolder in meinem src-Ordner erstellt. Dann habe ich mit der rechten Maustaste geklickt und eine neue Header-Datei mit folgendem Ergebnis hinzugefügt:
%Vor%Hauptpunkte davon: So passen Sie Eclipse-CDT-Code-Vorlagen an
Eine Lösung besteht darin, ${include_guard_symbol}
in der Vorlage zusammen zu löschen und selbst zu definieren , möglicherweise unter Verwendung einiger der anderen vordefinierten Variablen. Etwas wie das:
Bei einer Header-Datei namens inc / Foo.h würde der include guard wie folgt eingefügt:
%Vor%Leider scheint es keinen Weg zu geben, viel darüber hinaus anzupassen. Wenn ich zum Beispiel eine Klasse definiert habe, die in einem Namespace verschachtelt ist, möchte ich den Namespace möglicherweise als Teil des include guards verwenden. Ich kann momentan keinen Weg finden, dies in Eclipse zu tun.
Nicht wirklich eine Antwort auf Ihre Frage, aber ich würde gerne eine Alternative vorschlagen. Include-Wächter bieten eine funktionierende, wenn auch grobe Art und Weise, Code in einer Header-Datei zu verbieten, die mehr als einmal pro Kompilierungseinheit enthalten sein soll. Als Alternative könnten Sie das
verwenden %Vor% Compiler-Anweisung. Ich weiß, dass es nicht im Standard definiert ist, aber es wird von zahlreichen Compilern unterstützt, darunter GNU, Clang, MSVC und Intel. Wenn Sie #pragma once
verwenden, verlieren Sie wenig Portabilität und vermeiden Namenskonflikte, von denen ich annehme, dass sie den Grund dafür sind, dass Sie ${include_guard_symbol}
an erster Stelle ändern wollen.
Sie können auch Ссылка für eine ausführlichere Diskussion besuchen.
Tags und Links eclipse eclipse-cdt c++