Rumah > pembangunan bahagian belakang > C++ > Pengkhususan Templat Fungsi Separa atau Lebih Muatan: Bilakah Anda Harus Menggunakan Yang Mana?

Pengkhususan Templat Fungsi Separa atau Lebih Muatan: Bilakah Anda Harus Menggunakan Yang Mana?

Mary-Kate Olsen
Lepaskan: 2024-12-05 04:42:09
asal
825 orang telah melayarinya

Partial Function Template Specialization or Overloading: When Should You Use Which?

Pengkhususan Templat Fungsi Separa atau Berlebihan?

Dalam C , salah tanggapan lazim bahawa pengkhususan separa mungkin untuk templat fungsi. Walau bagaimanapun, piawaian C hanya membenarkan pengkhususan penuh.

Lebih muatan lwn. Pengkhususan Separa

Kod yang diberikan pada mulanya:

#include <iostream>

template <typename T1, typename T2>
inline T1 max(T1 const& a, T2 const& b) {
    return a < b ? b : a;
}

template <typename T>
inline T const& max(T const& a, T const& b) {
    return 10;
}
Salin selepas log masuk

tidak menunjukkan pengkhususan separa tetapi membebankan fungsi maksimum. Lebihan beban membenarkan berbilang fungsi dengan nama yang sama tetapi jenis argumen yang berbeza.

Konsep Pengkhususan Separa

Pengkhususan separa ialah apabila kelas atau templat fungsi dikhususkan untuk set tertentu daripada parameter templat. Untuk kelas, ini dicapai dengan menyediakan templat khusus dengan nama yang sama tetapi parameter yang lebih sedikit. Untuk templat fungsi, pengkhususan separa akan melibatkan penetapan hanya subset parameter templat, yang pada masa ini tidak dibenarkan oleh standard C.

Contoh Pengkhususan Kelas Separa

Pengkhususan separa untuk kelas kelihatan seperti ini:

template <typename T1, typename T2>
class MyClass {
    // ...
};

// Partial specialization: both template parameters have the same type
template <typename T>
class MyClass<T, T> {
    // ...
};
Salin selepas log masuk

Penyusun Sambungan

Sesetengah penyusun, seperti Microsoft Visual Studio 2010 Express, mungkin menyediakan pengkhususan separa untuk templat fungsi sebagai sambungan. Walau bagaimanapun, penggunaan sambungan sedemikian menjejaskan kemudahalihan kod, kerana pengkompil lain mungkin tidak menyokongnya.

Atas ialah kandungan terperinci Pengkhususan Templat Fungsi Separa atau Lebih Muatan: Bilakah Anda Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan