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

网站开发的总结与展望如何用js做网站

网站开发的总结与展望,如何用js做网站,wordpress植物网站,山西省住房和建设厅网站首页一:概述 应避免特化函数模板,而应通过重载来实现不同类型或参数的处理。对函数模板进行特化会引入一些不容易察觉的问题,因为特化是针对特定类型提供一个具体实现。对于函数模板,如果你对某个类型进行了特化,那么编译器…

一:概述

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

二:例子

        在下面的例子中,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://www.dtcms.com/wzjs/600776.html

相关文章:

  • 人和马做的视频网站国外vps国内vps
  • 企业网站开发创意wordpress wpzoom
  • 网站建设公司(深圳信科)一个完整的营销策划案范文
  • 网站改版后不收录专注苏州网站优化
  • 网站悬浮窗口佛山做外贸网站如何
  • 可以做哪些网站有哪些电商平台开发需要哪些技术人员
  • 做网站的优点ppt做书模板下载网站
  • 查询网站建设站长之家网站模板
  • 如何上传网站源码魅力潍坊网页制作
  • 如何升级网站后台科技园区建设网站的意义
  • 哪个网站可以免费建站排名函数rank怎么用
  • 做美食的网站可以放些小图片网站后台如何修改文字
  • 开发网站语言无极在线最新招聘找工作
  • 企业做网站一般要多少钱wordpress反复输入密码
  • 建筑企业登录建设厅网站密码推广网上国网的意义
  • 如何查看网站的空间大小不用编程做APP和响应式网站
  • 给网站做收录较好的软件网站代备案服务
  • 织梦网站改版需要怎么做新乡百度网站优化排名
  • dw做网站字体 别人电脑显示怎么做金融营销网站
  • 网站制作视频教程大全php做的商城网站必备功能
  • 越秀网站建设设计长沙正规官网建站
  • 网站建设很难吗在哪个网站上做外贸好
  • 微网站建设及开发做网站的软件叫什么
  • 湖北住房和城乡建设厅网站舆情分析报告案例
  • 东莞网站设计风格福州网站建设设计
  • 写出网站版面布局设计步骤亚马逊服务器做影视网站
  • 校园兼职网站开发用例图网站网站制作费用
  • 可信网站认证价格seo优化排名
  • 一级a做爰片就在线看网站模仿的网站做一样违法吗
  • 网站用的什么字体设计免费安装app