Rumah >pembangunan bahagian belakang >C++ >Patutkah Anda Menggunakan Kata Kunci `sebaris` dengan Templat C?
Kata Kunci Sebaris dengan Templat
Apabila mempertimbangkan penggunaan kata kunci sebaris dengan templat, persoalan timbul sama ada ia berlebihan, memandangkan pengkompil keupayaan untuk menentukan faedah inlining.
Jawapannya: Tidak, Ia Bukan Irrelevsemut
Walaupun pengetahuan pengkompil, kata kunci sebaris kekal relevan untuk templat. Walaupun templat fungsi secara amnya tidak sebaris secara lalai, pengkhususan eksplisitnya boleh menjadikannya sebaris.
Kes Tertentu
Terdapat keadaan apabila mengabaikan kata kunci sebaris boleh membawa kepada isu . Pertimbangkan contoh berikut:
#include "tpl.h"
#include "tpl.h"
#ifndef TPL_H #define TPL_H template<class T> void f(T) {} template<class T> inline T g(T) {} template<> inline void f<>(int) {} // OK: inline template<> int g<>(int) {} // error: not inline #endif
Menyusun kod ini mengakibatkan ralat berbilang definisi kerana g<> tidak ditanda secara eksplisit sebagai sebaris.
Peraturan Ibu Jari
Untuk mengekalkan konsistensi dan mengelakkan kemungkinan ralat, pertimbangkan untuk menggunakan kata kunci sebaris untuk templat fungsi yang bertujuan untuk sebaris . Ini selaras dengan peraturan praktikal yang dicadangkan dalam "Templat C: The Complete Guide" Vandevoorde/Josuttis, yang mencadangkan menulis sebaris apabila ia benar-benar dikehendaki.
Atas ialah kandungan terperinci Patutkah Anda Menggunakan Kata Kunci `sebaris` dengan Templat C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!