模板函数编译原理

一--- 导读linux

   首先咱们须要搞清楚这样一个实际生活中的例子,当工厂里面要生产一把刀,须要将滚烫的铁水倒入到模具里面,而后再通过锤炼就获得一把锋利的刀。函数模板和模板函数正是这样的一组关系,函数模板至关于作刀的模具,而模板函数就是咱们获得的刀。程序员

 

二---在linux中进行实际操做函数

首先咱们先写一个hello.cpp文件,里面放一个函数模板和三组调用spa

输入以下命令进行编译3d

编译完成咱们再看一下hello.s文件blog

虽然有3个MyAdd函数,但细心的同窗就会发现,第一个和第三个是同名的,都是IiET-的形式,这是由于第一此调用和第三次调用参数的类型是相同的,都为int类型,编译器在编译第一个调用的时候就已经生成了int类型的模板函数。编译器

 

三---模板函数诞生编译器编译次数编译

  编译器一开始会在模板声明的地方先编译函数模板,根据写编译器的程序员们指定的规则,生成相应的函数模板代码。以后若编译器发现有 调用,又会在调用的地方编译一次,生成相应类型的调用代码。故而一次调用编译器须要编译两次模板

 

四---注意事项程序

  编译器并非把函数模板直接拿来用,函数模板是不能直接使用的,编译器调用的是以函数模板为型生成的模板函数。这里只要看了导读所说的内容就应该很容易理解。

相关文章
相关标签/搜索