功能专业化
Function Specialization
我试图弄清楚这两者之间的区别。
第一个是用于添加到表达式的模板函数:
template <class T,class Y,class Z>
Z add(T t,Y y)
{
return t+y;
}
Specialization_1 :
template<>
int add<int,int,int>(int t,int y)
{
return t+y+10000;
}
Specialization_2 :
int add(int t,int y)
{
return t+y+10000;
}
speciaization_1和specialization_2有什么区别?在声明之前是否有必要使用模板<>????
第一个是专业化。 二是重载。
第一个将创建模板的特殊变体。 第二个将创建另一个具有相同名称的函数
我没有看到对你的第一个专业感兴趣。 例如,这更有用:
template <typename T>
T add(T t,T y)
{
return t+y+10000;
}
现在您可以使用此功能添加许多不同的类型。
相关文章:
- 类模板的成员功能的定义在单独的TU中完全专业化
- 特定好友功能专业化
- 如何部分专业化功能以用元组元素作为参数调用功能
- 功能模板参数包,然后是模板参数和专业化
- 不允许功能模板的部分专业化背后的理由是什么?
- 在此功能[ - wuninitialization]中使用非专业化
- 模板专业化的情况下,如果有变态模板功能
- 如何在另一个名称空间内从另一个命名空间内明确专业化功能模板
- 为什么VS2017拒绝我的功能模板专业化,而不是VS2015拒绝
- 仅适用于单个功能的部分模板专业化
- 功能模板专业化具有模板打字名称
- 对完整模板专业类成员功能的未定义引用,但不是部分专业化
- 特定模板类型的功能模板专业化
- 功能模板专业化中的bool返回值
- C 将lambda函数用作模板功能专业化
- 如何正确设计和实施功能模板专业化
- Clang无法在模板类专业化中编译模板功能,该模板类专业化与模板声明具有 *不同的返回类型 *
- 统一功能使用模板专业化和接口来调用实例和原始类型
- 当使用Tempate作为参数时,功能模板专业化
- 模板功能实例化和专业化