Den instanziierten Code von C-Vorlagen anzeigen
In C kann es hilfreich sein, den vom Compiler generierten Code auf Funktion oder Klasse zu untersuchen Vorlagen. Betrachten Sie beispielsweise die folgende Vorlage:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; }</code>
Beim Aufruf mit einem bestimmten Typ, z. B. add
Compiler-Optionen zur Erzielung von Sichtbarkeit
Eine Möglichkeit, dies zu erreichen, ist die Verwendung der Option -Xclang -ast-print -fsyntax-only mit Clang. Diese Option weist den Compiler an, den abstrakten Syntaxbaum (AST) der instanziierten Vorlage zu drucken.
Beispielverwendung
Erstellen wir eine Testdatei mit dem Namen test.cpp, die Folgendes enthält Folgender Code:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; } void tmp() { add<int>(10, 2); }</code>
Um den instanziierten Code für die int-Spezialisierung anzuzeigen, führen Sie den folgenden Befehl aus:
$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
Clang-Ausgabe
Für Clang Version 5.0 oder höher sieht die Ausgabe so aus:
template <class T> T add(T a, T b) { return a + b; } template<> int add<int>(int a, int b) { return a + b; } void tmp() { add<int>(10, 2); }
Diese Ausgabe zeigt die Originalvorlage, gefolgt vom speziellen Add
Das obige ist der detaillierte Inhalt vonWie kann ich den instanziierten Code von C-Vorlagen anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!