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

大学生创新创业网站开发做网站需要先申请域名

大学生创新创业网站开发,做网站需要先申请域名,网站页面制作,中天建设集团有限公司资质等级一:概述 应避免特化函数模板,而应通过重载来实现不同类型或参数的处理。对函数模板进行特化会引入一些不容易察觉的问题,因为特化是针对特定类型提供一个具体实现。对于函数模板,如果你对某个类型进行了特化,那么编译器…

一:概述

        应避免特化函数模板,而应通过重载来实现不同类型或参数的处理。对函数模板进行特化会引入一些不容易察觉的问题,因为特化是针对特定类型提供一个具体实现。对于函数模板,如果你对某个类型进行了特化,那么编译器仅仅使用那个特化版本,其他版本不再参与选择。而重载是指定义多个函数模板,它们的参数类型,个数或顺序有所不同,编译器会根据传入的参数选择合适的版本。

二:例子

        在下面的例子中,print<int>(int val, int extra) 是一个错误的特化版本。原因是模板特化必须完全匹配原始模板的函数签名,因此,print<int> 只应接受一个参数。但在特化时,你尝试添加了第二个参数 extra,这会导致特化不符合原模板的约定,从而无法编译。编译器会提示print<int>(int val, int extra)与原始模板 print<T>(T val) 不匹配,因此无法正常编译。

#include <iostream>// 通用模板
template <typename T>
void print(T val) {std::cout << "Generic: " << val << std::endl;
}// 为 int 类型进行特化
template <>
void print<int>(int val) {std::cout << "Specialized for int: " << val << std::endl;
}// 为 float 类型进行特化
template <>
void print<float>(float val) {std::cout << "Specialized for float: " << val << std::endl;
}// 错误的特化(不能正常编译)
template <>
void print<int>(int val, int extra) {  // 错误:此特化函数没有与原模板相匹配的重载std::cout << "Specialized for int with extra: " << val << ", " << extra << std::endl;
}int main() {print(10);       // 应该调用 print<int>(int)print(3.14f);    // 应该调用 print<float>(float)print(10, 20);   // 错误:没有匹配的模板特化函数
}

使用重载而不是模板特化,可以改成如下这样: 

#include <iostream>// 通用模板
template <typename T>
void print(T val) {std::cout << "Generic: " << val << std::endl;
}// 为 int 类型进行特化
template <>
void print<int>(int val) {std::cout << "Specialized for int: " << val << std::endl;
}// 为 float 类型进行特化
template <>
void print<float>(float val) {std::cout << "Specialized for float: " << val << std::endl;
}// 使用重载来解决额外参数问题
void print(int val, int extra) {std::cout << "Specialized for int with extra: " << val << ", " << extra << std::endl;
}int main() {print(10);       // 调用 print<int>(int)print(3.14f);    // 调用 print<float>(float)print(10, 20);   // 调用 print(int, int)
}

三:总结 

  • 特化模板的坏处:它不参与重载解析,一旦你进行了模板特化,编译器会优先选择与特化版本完全匹配的函数,不会参与其他重载模板的选择。

  • 推荐使用重载:重载模板函数更具灵活性,允许编译器根据参数类型选择合适的版本,而不会像特化那样带来限制。


文章转载自:

http://QVljJeBe.kjrLp.cn
http://5wjOOiXi.kjrLp.cn
http://RekNTIfq.kjrLp.cn
http://kafBaMMs.kjrLp.cn
http://QUZUORIx.kjrLp.cn
http://i7tpZioE.kjrLp.cn
http://iZDD41uT.kjrLp.cn
http://2Lzk8sws.kjrLp.cn
http://tBuhAGnr.kjrLp.cn
http://HVZOQiwz.kjrLp.cn
http://UjxZJN3v.kjrLp.cn
http://roOqcJ4K.kjrLp.cn
http://I9XNTOO3.kjrLp.cn
http://Zz1KKl6K.kjrLp.cn
http://OkZUrsOd.kjrLp.cn
http://ZXQ4Msmh.kjrLp.cn
http://lM3jzKzr.kjrLp.cn
http://mM068IRg.kjrLp.cn
http://uBNQ2aJO.kjrLp.cn
http://foE0IoOd.kjrLp.cn
http://8TEV3aAM.kjrLp.cn
http://rXAfdkSG.kjrLp.cn
http://BRzoszBE.kjrLp.cn
http://zaQfUBiX.kjrLp.cn
http://PLXgn3c1.kjrLp.cn
http://F4qY502A.kjrLp.cn
http://f5RDbIx6.kjrLp.cn
http://GkEKy85Y.kjrLp.cn
http://6sG2exg7.kjrLp.cn
http://2WnqxyUg.kjrLp.cn
http://www.dtcms.com/wzjs/760962.html

相关文章:

  • 织梦 网站名称旅游网站的后台管理系统怎么做
  • 广州企业500强名单巴彦淖尔seo
  • 网站建设制作设计协会网站建站
  • 哈尔滨网站建设方案外包青岛个人建站模板
  • 网站续费一般多少钱chrome官网下载
  • 微信 购物网站开发做网站分层技术
  • iis网站下载做汽车网站怎么挣钱吗
  • 东莞建设网站流程汅api免费版大全免费
  • 网站模版的软件分类网站作用
  • 教学资源网站建设方案唐山哪里建设飞机场
  • 免费资源源码网站百度指数下载
  • 江苏专业做网站简单的微信小程序项目
  • 做官网网站哪家公司好微信分销系统开发得多少钱
  • 加强网站网络安全建设帝国cms网站建设
  • 网站举报平台做网站要好多钱
  • 五金东莞网站建设技术支持懒人学做网站
  • 怎样打死网站500强企业seo服务商
  • 青海个人旅游网站建设中兴能源建设有限公司网站
  • 做聚美优品网站得多少钱网站管理员招聘
  • 怎样创建一个网站旅游网站开发参考文献
  • 58同城有做网站188旅游网站管理系统6.0模板
  • 做图模板下载网站无锡网站建设wkstt
  • 个人博客网站的建设结构图河南怎么建设网站
  • 南充市网站建设深圳计算机软件培训学校
  • 电子商务公司网站建设网络推广网站优化
  • 电子科技产品网站建设wordpress插件补丁
  • 网站设计 中高端网页制作公司代码
  • 怎样才能在百度上搜到自己的网站电商网站更适合
  • 天津网站建设兼职软件设计师报考条件
  • 网站开发对显卡的要求建设网站的公司济南兴田德润o评价