Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Fungsi Ahli Dikhususkan Separa dalam Templat Kelas?
Pengkhususan Fungsi Ahli dalam Templat Kelas
Pengkhususan separa, membenarkan pengubahsuaian ahli tertentu dalam kelas templat, tidak disokong untuk ahli fungsi. Ini bermakna kod seperti berikut tidak akan disusun:
<code class="cpp">template <typename T, bool B> struct X { void Specialized(); }; template <typename T> void X<T, true>::Specialized() { ... } template <typename T> void X<T, false>::Specialized() { ... }</code>
Pendekatan Alternatif
<code class="cpp">template <> void X<int, true>::Specialized() { ... }</code>
<code class="cpp">template <typename T, bool B> struct X { template <bool B> static void Specialized(int); }; template <typename T> inline void X<T, true>::Specialized(int) { ... } template <typename T> inline void X<T, false>::Specialized(int) { ... }</code>
<code class="cpp">template <typename T, bool B> struct SpecializedImpl { static void call() { ... } }; template <typename T, bool B> struct X { void Specialized() { SpecializedImpl<T, B>::call(); } };</code>
Atas ialah kandungan terperinci Bolehkah Fungsi Ahli Dikhususkan Separa dalam Templat Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!