Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chuyên biệt hóa Template (Template Specialization) trong C++


Trong hướng dẫn này, chúng ta sẽ thảo luận về chuyên biệt hóa template trong C++.

Các hàm chuẩn như sort() hoạt động với mọi kiểu dữ liệu và hành xử giống nhau. Nhưng nếu muốn hành vi đặc biệt cho một kiểu dữ liệu cụ thể (kể cả kiểu do người dùng định nghĩa), ta dùng chuyên biệt hóa template.

Ví dụ

#include <iostream>
using namespace std;

template <class T>
void fun(T a) {
    cout << "The main template fun(): " << a << endl;
}

template<>
void fun(int a) {
    cout << "Specialized Template for int type: " << a << endl;
}

int main() {
    fun<char>('a');
    fun<int>(10);
    fun<float>(10.14);
    return 0;
}

Đầu ra

The main template fun(): a
Specialized Template for int type: 10
The main template fun(): 10.14