普通函数重载模板函数但是普通的模板类不重载?

时间:2018-05-30 09:01:08

标签: c++ c++14

为什么允许使用与函数模板同名的普通函数?但是,不允许使用与类模板同名的普通类。

PackageReference

1 个答案:

答案 0 :(得分:3)

类不能超载,只能运行。如果你想"过载"一个类,然后使用模板专业化

// The generic class
template<typename T>
class A {};

// Specialization for int
template<>
class A<int> {};

// Specialization for std::string
template<>
class A<std::string> {};

// ...

A<int> my_int_a;  // Uses the A<int> specialization
A<float> my_float_a;  // Uses the generic A<T>