当前位置: 首页 > wzjs >正文

山西制作网站做外贸密封件的网站

山西制作网站,做外贸密封件的网站,所有的网站建设教程,百度网站制作一、契约与概念 随着C新标准的演进中,对安全控制越来越严格,就会出现在不同层次上的安全控制约束。这也符合安全问题解决的思路即全链路控制、整体推进而不能出现所谓的木桶原理现象。本文就对C26中的契(合)约(Contra…

一、契约与概念

随着C++新标准的演进中,对安全控制越来越严格,就会出现在不同层次上的安全控制约束。这也符合安全问题解决的思路即全链路控制、整体推进而不能出现所谓的木桶原理现象。本文就对C++26中的契(合)约(Contracts)与C++20中的概念(Concepts)进行初步的分析和说明。

二、契约和概念的特点与不同

在前文分析过,契约更倾向于在运行时进行pre、post等进行条件限制而概念更多的是应用在模板编程中,主要目的是为了约束具体的模板编译条件。所以说二者的一个最重要的不同的在于契约重点是在运行时进行安全控制而概念重点在模板的编译时进行安全控制。
正如在相关文档中所描述,概念与契约是互不相见(Concepts Do Not See Contracts)。也即契约的安全控制无法影响概念的安全控制,这也符合设计思想的理论。
另外,契约一般是限制函数而概念主要是对模板参数进行控制。在出现异常状态时,契约既可以执行默认的行为也可以自定义行为;而概念则提供一个编译错误。
通过上而把 分析可以看出,契约和概念不是互斥的,它们是在不同的层面上对C++代码进行安全控制的,它们可以单独工作也可以一起合作进行协同,提高代码的安全可靠性。

三、二者的协同应用

基于上面的分析,在程序的设计和开发中,可以通过分层进行整体的安全控制:
1、在编译时使用Concepts而在运行时使用Contracts
2、对模板优先使用Concepts同时配合使用Contracts
3、可以配合Contracts中的忽略等情况减少或关闭检查,提高运行效率
二者的协同应用,能够更好的构建健壮、安全C++代码。

四、例程

看一个二者协同的例程:

#include <concepts>
#include <contracts>// Concepts约束
template<typename T>
concept NumCheck = std::integral<T> || std::floating_point<T>;// Contracts验证
template<NumCheck T>
T DivNum(T t1, T t2) pre(t2 != 0)             post( ret: ret >= 0 && ret <= 10)     
{contract_assert (t1 >= 2);               return (t1 / t2) * 10;
}int main() {auto ret = DivNum(7.0, 3.0);// err demo:// 编译错误(Concepts check)DivNum("abc", 5);// 运行时错误(Contracts check)DivNum(10, 0);return 0;
}

五、总结

真正的学会贯通一项技术,不是孤单的使用。而是要灵活的应用到各个场景下,与其它的相关技术协作互补,达到彰显优势,弥补劣势,取长补短,互通有无的境界。也就是常说的从单纯的僵化套用到思想上的有机结合。
一定要明白,任何技术都不是孤独的生长在荒漠上的。


文章转载自:

http://5rteHe2F.fgxws.cn
http://4OzjYk2m.fgxws.cn
http://WrnAbPhQ.fgxws.cn
http://Hn1KMXZV.fgxws.cn
http://j73by32p.fgxws.cn
http://llgW1kB9.fgxws.cn
http://DuA9ISQN.fgxws.cn
http://aaLNssV8.fgxws.cn
http://HyM0RqYS.fgxws.cn
http://in31kOhU.fgxws.cn
http://zhee62Qt.fgxws.cn
http://O97FneV3.fgxws.cn
http://yYzj4KMp.fgxws.cn
http://Kh9JxYiU.fgxws.cn
http://sSls1SlD.fgxws.cn
http://puFFKAwZ.fgxws.cn
http://D79Dfe01.fgxws.cn
http://EEZq5Ars.fgxws.cn
http://CWasoenK.fgxws.cn
http://zyO2siaC.fgxws.cn
http://zqcTo64k.fgxws.cn
http://bHhHEO7e.fgxws.cn
http://SiZ8yaG2.fgxws.cn
http://MS1e6yhk.fgxws.cn
http://rYZSDFaB.fgxws.cn
http://LpLocDce.fgxws.cn
http://BUwWS4tG.fgxws.cn
http://OJFyV8on.fgxws.cn
http://P0ZcsX5R.fgxws.cn
http://AAm3tlBD.fgxws.cn
http://www.dtcms.com/wzjs/644432.html

相关文章:

  • ps里怎么做微网站模板响应式网站写法
  • 做的网站需要什么技术企业建设网站哪里好
  • 求个网站这么难吗2022年贴吧如何用dw制作网页文字链接
  • 做网站分类模块的设计思路制作小公司网站教程
  • 网站项目建设策划书网站添加验证码
  • 广告位网站模板wordpress ajax login
  • 深圳餐饮公司网站制作网站建设与管理教程视频
  • 完成一份网站建设前期规划方案阿里网站域名指向怎么做
  • 做网站对企业的好处为什么用asp做网站
  • 人力外包网站手机上免费自己做网站
  • 石家庄做外贸网站网页游戏制作教程
  • 网站建设备案需要什么wordpress答题跳转
  • html 网站根目录贵阳网站开发人员工资
  • 官方网站建站哪里卖网站模板
  • 烟台网站制作公司在线咨询赛车网站开发
  • 重庆房产网站建设wordpress粘贴关键词
  • 织梦二次开发手机网站wordpress foxlogin
  • php手机网站开发郑州市网站建设
  • 济宁市任城区建设局网站辽宁响应式网站建设
  • 网站建设培训班价格mitao wordpress
  • 哈尔滨网站关键词优化微信群营销方案
  • 免费网站空间女人网站建设后续需要维护
  • 网站文字代码360免费wifi怎么用
  • 中文 域名的网站增加网站关键词库
  • 怎样做当当网站代理做刀模线网站
  • 农家乐网站设计做食品的网站设计要注意
  • 石家庄企业商城网站建设国外 做励志视频的网站
  • 网站服务器如何做热备价哈尔滨建设网站哪家专业
  • 绣花图案设计网站婚纱摄影网页制作
  • 做简单的网站首页wordpress+解密成md5