何时使用模板——再论完整传递数组

原创 2007年09月29日 11:07:00

模板的终极用途我已经说过了,只是驱动编译器帮我们生成代码,但是可以使用模板的时候却很多, 由传递完整数组信息我想到使用模板的一种情况——获取我们无法得到的信息。

有些信息编译器知道,但我们不知道,而模板是在编译阶段工作的,因此,合理利用模板我们可以获取一些原本无法得到的东西,这里我想到的是1.完整传递数组2.swap函数和3.编译期的选择处理。

1.正如我在上一篇“完整传递数组信息”里所展示的获取编译器到底为我们的模板类型使用了什么类型替换一样,我们可以使用特制的模板获取编译器运行阶段的秘密。

2.看如下函数:

void    swap(a,b)
...{
    T    m;
    m    
= a;
    a    
= b;
    b    
= m;
}

这是一个无法编译通过的函数,因为我没有提供a、b的类型,但是这向我们展示了函数体里的情况,在函数入口可以获取类型信息,因为使用者已经告诉你了,但是到了函数体里,你知道a、b的类型,却没有一个方法从a、b中推导出他们的类型进而定义一个同类型的变量m,而编译器可以获取这个类型:

template    <typename T>
void    swap(T    a,T    b)
...{
    T    m;
    m    
= a;
    a    
= b;
    b    
= m;
}

使用模板我们把只有编译器知道的东西提取到了我们必须知道它的地方。

3.编译期选择

编译期的数据是在我们写完代码以后才出现的,同样编译期的某些确定数据却因为编码阶段不太明确而只得在运行阶段消耗时间获取,这是每个程序员都不想看到的,而模板可以让我们提前获取一些信息,这将极大的提高运行效率,这方面的东西我在最初的时候已经讨论不少了。

django将数组传递给前台模板

将数组传递给前台模板: 1. def modifyBtn(req,modifyip): print modifyip conn= MySQLdb.connect( ho...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2018年01月10日 13:35
  • 95

《C专家编程》学习笔记1

1.整形升级和寻常算术转换: char,short int 或者位段,包括他们的有符号和无符号型,以及枚举类型,可以使用在需要的int 或unsignede int 的表达式中。如果int可以完整的...
  • zmrlinux
  • zmrlinux
  • 2015年05月05日 18:19
  • 475

C语言再学习 -- 再论数组和指针

之前有总结指针数组,但是现在看来总结的太简单了。好多重要的知识点都是一带而过的。本想在后面添加后来想想算了,还是再写一篇文章来详细介绍数组和指针这对冤家吧。 之前总结的,参看:C语言再学习 -- 数...
  • qq_29350001
  • qq_29350001
  • 2017年01月18日 10:48
  • 1898

再论数组

1.什么时候数组和指针相同      在实际应用中,数组和指针可以互换的情形比不可互换的情形要更为常见,让我们分别考虑“声明”和“使用”这两种情况;数组声明可以分成3种情况:      1.外部数...
  • xiao3404
  • xiao3404
  • 2014年03月30日 20:07
  • 1362

再‘论’指针&数组

再‘论’指针&数组 刚刚接到的通知,下周要去MS面试了。作为一个真心对C++不感冒的人来说,不知道要和他们聊什么了,没准还是HTML 5呢!今天和大家分享一个小知识,关于C的数组...
  • diy534
  • diy534
  • 2012年04月13日 01:40
  • 365

利用模板传递完整数组信息

我们都知道,对于void doSomething(char buf[])而言,buf只是一个char*,对其求sizeof无法获得buf缓冲大小,有时候,尤其是需要验证缓冲是否大小合法的时候,获取数组...
  • win2ks
  • win2ks
  • 2007年09月29日 01:18
  • 615

笔记:《高效能人士的七个习惯》第十一章 再论由内而外造就自己

1、 七个习惯浇灌出来的最高级、最美好和最甘甜的果实就是齐心协力,就是把自己、爱人、朋友和同事合而为一。 2、 刺激与回应之间存在一段距离,成长和幸福的关键就在于我们如何利用这段距离。 3、 我们...
  • icamera0
  • icamera0
  • 2016年01月21日 23:14
  • 1029

再论由内而外造就自己

再论由内而外造就自己
  • Last_Impression
  • Last_Impression
  • 2015年06月14日 18:39
  • 927

laravel 怎么在模板上使用后台传过来的数组

laravel 怎么在模板上使用后台传过来的数组
  • hexiaoniao
  • hexiaoniao
  • 2017年07月23日 22:16
  • 162

再论数组和指针

C语言新手常常会听到类似“数组和指针是相同的”说法,这其实并不完全正确。且看一下,大牛勿喷。 回想一下刚接触C语言时,老师也是这么讲的,自己一直这么认为了好久,为什么这么认为你,对数组的引用总是可以...
  • w15778225
  • w15778225
  • 2013年03月21日 21:31
  • 477
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:何时使用模板——再论完整传递数组
举报原因:
原因补充:

(最多只允许输入30个字)