局部变量的类型

来源:互联网 发布:个人博客 php 源码 编辑:程序博客网 时间:2024/05/20 10:14

在这种情况下,我们用T为模板形参的名字,而不是一些形式。它没有差别,和T是一个泛型类型比较常见的模板参数名称。

在上面的例子中,我们使用函数模板的总和的两倍。用int类型的参数的第一时间,并与双变量的二个类型。编译器实例化称为每一次函数的适当版本

注意如何还用来声明局部变量的类型中的总和(通用)

123456789101112131415161718// function templates#include <iostream>using namespace std;template <class T, class U>bool are_equal (T a, U b){  return (a==b);}int main (){  if (are_equal(10,10.0))    cout << "x and y are equal\n";  else    cout << "x and y are not equal\n";  return 0;}x and y are equalEdit & Run

fixed_multiply函数模板第二个参数是int类型。它只是看起来像一个普通的函数的参数并且可以用就像一个

但存在一个主要的区别:模板参数的值是在编译时生成不同的实例化的函数fixed_multiply决定的,因此,参数的值是没有通过在运行时:两个调用fixed_multiply主要基本呼叫的函数的两个版本:一个总是乘以2,和一个总是乘以三。出于同样的原因第二个模板参数必须是一个常量表达式不能通过一个变量)


0 0