Memvisualisasikan Kod Templat Instan Pengkompil dalam C
Selalunya, pembangun ingin meneliti kod yang dijana pengkompil untuk templat fungsi atau templat kelas untuk menyelidiki lebih mendalam tafsiran penyusun kod mereka. Ini benar terutamanya apabila menggunakan templat yang kompleks.
Clang's AST Pretty-Printing
Satu penyelesaian komprehensif terletak pada penggunaan Clang (https://clang.llvm.org/ ), pengkompil C moden dan kaya dengan ciri bahagian hadapan. Clang menawarkan alat yang tidak ternilai untuk menggambarkan kod templat instantiated.
Pertimbangkan coretan kod di bawah:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; }</code>
Semasa menyusun test.cpp yang mengandungi:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; } void tmp() { add<int>(10, 2); }</code>
Gunakan arahan berikut untuk mencetak cantik kod yang telah dibuat segera:
$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
Output:
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); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memvisualisasikan Instantiasi Kod Templat C Menggunakan Clang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!