C++ 模板特化是一种技术,它允许你为特定类型提供模板定义的特定实现
下面是一个简单的示例,展示了如何使用模板特化处理不同的数据类型:
#include <iostream>
#include <string>
// 通用模板定义
template <typename T>
class MyClass {
public:
void print() {
std::cout << "通用模板实现" << std::endl;
}
};
// 针对 std::string 类型的特化
template <>
class MyClass<std::string> {
public:
void print() {
std::cout << "针对 std::string 类型的特化实现" << std::endl;
}
};
int main() {
MyClass<int> intObj;
intObj.print(); // 输出:通用模板实现
MyClass<std::string> strObj;
strObj.print(); // 输出:针对 std::string 类型的特化实现
return 0;
}
在这个示例中,我们为 MyClass
类创建了一个通用模板定义,然后针对 std::string
类型进行了特化。当使用不同的数据类型实例化 MyClass
时,编译器会根据类型选择合适的模板实现。