Melihat Kod Instantiated Templat C
Dalam C , ia boleh memberi manfaat untuk memeriksa kod yang dijana oleh pengkompil untuk fungsi atau kelas templat. Sebagai contoh, pertimbangkan templat berikut:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; }</code>
Apabila dipanggil dengan jenis tertentu, seperti add
Pilihan Pengkompil untuk Mencapai Keterlihatan
Satu cara untuk mencapainya ialah dengan menggunakan pilihan -Xclang -ast-print -fsyntax-only dengan Clang. Pilihan ini mengarahkan pengkompil untuk mencetak pepohon sintaks abstrak (AST) bagi templat yang diwujudkan.
Contoh Penggunaan
Mari kita buat fail ujian bernama test.cpp yang mengandungi kod berikut:
<code class="cpp">template <class T> T add(T a, T b) { return a + b; } void tmp() { add<int>(10, 2); }</code>
Untuk melihat kod instantiated untuk pengkhususan int, jalankan arahan berikut:
$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
Clang Output
Untuk Clang versi 5.0 atau lebih baru, output akan kelihatan seperti ini:
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); }
Output ini menunjukkan templat asal, diikuti dengan add
Atas ialah kandungan terperinci Bagaimana untuk Melihat Kod Instantiated Templat C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!