c++面试题(c++和Python哪个好)

技术如何进行C++模板显式具体化的分析如何进行C++模板显式具体化的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。模板函数虽然非常好用,但是也存在一些问

我相信很多没有经验的人对于如何分析C模板的显式具体化是无能为力的。为此,本文总结了问题产生的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。

模板功能虽然很有用,但也存在一些问题。例如,有些操作并不适合所有类型。针对这种情况,C提供了一种解决方案,即为特定类型提供具体的模板定义。这里的具体性可以理解为类型的具体性。

我们来看一个C++ Primer当中的例子,假设现在我们有一个结构体叫做job:

structjob{

stringname

双倍工资;

intfloor

}可以作为一个整体赋给结构,所以前面的Swap函数同样适用于它。

templatetypenameT

空隙交换(Ta,Tb){ 0

ttemp=a;

a=b;

b=温度;

}但现在我们希望在交换结构时,只交换薪资和楼层字段,名称不变。因为我们要引入逻辑变化,所以直接调用Swap函数是不可行的。

当然我们可以不用函数模板,直接重载函数:

无效交换(joba,jobb){ 0

//swap是std的交换函数,在算法头文件中。

互换(a .薪水,b .薪水);

互换(a.floor,b . floor);

}因为C规定非函数模板的优先级高于函数模板,所以我们在作业结构上调用Swap函数时会优先考虑这一点。

除此之外,我们还可以提供一个具体化的模板函数:

templatevoitswapjob(joba,jobb){ 0

互换(a .薪水,b .薪水);

互换(a.floor,b . floor);

}这个函数的写法好像有点特别。我们在函数类型之前添加了模板,并在函数名称之后跟随作业。意味着这是一个功能模板的明确体现,也可以理解为为之前的功能模板提供了一个作业类型的版本。c规定显式模板函数比普通模板函数具有更高的优先级。

看完以上内容,你掌握了如何分析C模板的显式具体化了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151262.html

(0)

相关推荐

  • MySql常见问题的解析都有哪些

    技术MySql常见问题的解析都有哪些这期内容当中小编将会给大家带来有关MySql常见问题的解析都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.MySQL无法重启问题解决War

    攻略 2021年10月25日
  • monkey软件如何使用(monkey工具使用方法)

    技术Monkey工具怎么用这篇文章给大家介绍Monkey工具怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 今天我来讲一下最近上手的一款工具---------monkey。Api网站上是

    攻略 2021年12月24日
  • 溜组词语,溜组词,四字词语怎么组词呢

    技术溜组词语,溜组词,四字词语怎么组词呢读音:【liū溜组词语、liù】 “溜”的组词有:溜冰、溜圆、溜光、溜走、溜号 “溜”的四字词语:溜之大吉、山溜穿石、走花溜冰、溜之乎也。溜”的组词 溜冰:拼音【liū bīng】

    2021年10月25日
  • 如何在线将传统模式复制改为GTID复制模式

    技术如何在线将传统模式复制改为GTID复制模式这篇文章将为大家详细讲解有关如何在线将传统模式复制改为GTID复制模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.在每一台服务器上设

    攻略 2021年11月2日
  • mysql的cmake方式有哪些

    技术mysql的cmake方式有哪些这篇文章主要介绍“mysql的cmake方式有哪些”,在日常操作中,相信很多人在mysql的cmake方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

    攻略 2021年10月20日
  • CF450B Jzzhu and Sequences 题解

    技术CF450B Jzzhu and Sequences 题解 CF450B Jzzhu and Sequences 题解CF450B Jzzhu and Sequences 题解Content
    有一个

    礼包 2021年12月16日