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

网站开发 定制 合同 模板网站做二级站

网站开发 定制 合同 模板,网站做二级站,网站安全建设必要性,做网站需要那些东西1 SFINAE。 2 条件特化。可用作额外的函数参数#xff08;不可应用于运算符重载#xff09;、返回类型#xff08;不可应用于构造函数与析构函数#xff09;#xff0c;或类模板或函数模板形参。 函数参数#xff1a; #include iostream #include type_tra…1 SFINAE。 2 条件特化。可用作额外的函数参数不可应用于运算符重载、返回类型不可应用于构造函数与析构函数或类模板或函数模板形参。 函数参数 #include iostream #include type_traits using namespace std; template typename T T addT(T value, typename std::enable_ifstd::is_integralT::value, T::type* nullptr) {return value 10; }template typename T T addT(T value, typename std::enable_ifstd::is_floating_pointT::value, T::type* nullptr) {return value 5; }int main() {int d 10;double f 20;d addT(d);f addT(f);return 0;}单独看这个例子是比较模糊因为编译器做了自动补充d addT(d, nullptr);通过如下网站可以展开上面代码 C Insights #include iostream #include type_traits using namespace std;templatetypename T T addT(T value, typename std::enable_ifstd::is_integralT::value, T::type *) {return operator(value, 10); }/* First instantiated from: insights.cpp:22 */ #ifdef INSIGHTS_USE_TEMPLATE template int addTint(int value, typename std::enable_ifstd::is_integralint::value, int::type *) {return value 10; } #endiftemplatetypename T T addT(T value, typename std::enable_ifstd::is_floating_pointT::value, T::type *) {return operator(value, 5); }/* First instantiated from: insights.cpp:23 */ #ifdef INSIGHTS_USE_TEMPLATE template double addTdouble(double value, typename std::enable_ifstd::is_floating_pointdouble::value, double::type *) {return value 5; } #endifint main() {int d 10;double f 20;d addT(d, nullptr);f addT(f, nullptr);return 0; } 函数返回值 #include type_traits #include iostreamtemplate typename T typename std::enable_if std::is_integralT::value, T::type addT(T value) {return value 10; }template typename T typename std::enable_if std::is_floating_pointT::value, T::type addT(T value) {return value 5.0; }int main() {int d 10;double f 20;d addT(d); //d 20f addT(f); //f 25.000000000return 0; } std::is_integral 用法参考https://cplusplus.com/reference/type_traits/is_integral/ 编译展开后的代码如下 #include type_traits #include iostreamtemplatetypename T typename std::enable_ifstd::is_integralT::value, T::type addT(T value) {return value 10; }/* First instantiated from: insights.cpp:20 */ #ifdef INSIGHTS_USE_TEMPLATE template typename std::enable_ifstd::is_integralint::value, int::type addTint(int value) {return value 10; } #endiftemplatetypename T typename std::enable_ifstd::is_floating_pointT::value, T::type addT(T value) {return value 5.0; }/* First instantiated from: insights.cpp:21 */ #ifdef INSIGHTS_USE_TEMPLATE template typename std::enable_ifstd::is_floating_pointdouble::value, double::type addTdouble(double value) {return value 5.0; } #endifint main() {int d 10;double f 20;d addT(d);f addT(f);return 0; }模版类特化 #include type_traits #include iostreamtemplate typename T, typename Enable void class MyTestClass {// 默认实现适用于所有类型 public:MyTestClass() {std::cout default;} };template typename T class MyTestClassT, typename std::enable_ifstd::is_integralT::value::type {// 整型类型的特化实现 public:MyTestClass() {std::cout int;} };template typename T class MyTestClassT, typename std::enable_ifstd::is_floating_pointT::value::type {// 浮点型类型的特化实现 public:MyTestClass() {std::cout float;} }; int main() {MyTestClassstd::string x1;// OK 匹配初等模板MyTestClassint x2; // OK 匹配偏特化 int MyTestClassdouble x3; // OK 匹配偏特化 doublereturn 0; } 模版展开后代码如下 #include type_traits #include iostreamtemplatetypename T, typename Enable void class MyTestClass {public: inline MyTestClass(){std::operator(std::cout, default);}};/* First instantiated from: insights.cpp:35 */ #ifdef INSIGHTS_USE_TEMPLATE template class MyTestClassstd::basic_stringchar, void {public: inline MyTestClass(){std::operator(std::cout, default);}};#endif /* First instantiated from: insights.cpp:36 */ #ifdef INSIGHTS_USE_TEMPLATE template class MyTestClassint, void {public: inline MyTestClass(){std::operator(std::cout, int);}};#endif /* First instantiated from: insights.cpp:37 */ #ifdef INSIGHTS_USE_TEMPLATE template class MyTestClassdouble, void {public: inline MyTestClass(){std::operator(std::cout, float);}};#endiftemplatetypename T class MyTestClassT, typename std::enable_ifstd::is_integralT::value::type {public: inline MyTestClass(){std::operator(std::cout, int);}};templatetypename T class MyTestClassT, typename std::enable_ifstd::is_floating_pointT::value::type {public: inline MyTestClass(){std::operator(std::cout, float);}};int main() {MyTestClassstd::basic_stringchar, void x1 MyTestClassstd::basic_stringchar, void();MyTestClassint, void x2 MyTestClassint, void();MyTestClassdouble, void x3 MyTestClassdouble, void();return 0; }参考文档 https://cplusplus.com/reference/type_traits/is_integral/ std::enable_if - cppreference.com C之std::enable_if_std enable if-CSDN博客 C模板编程 | std::enable_if 和 SFINAE_模板类 std::enable-CSDN博客
http://www.yingshimen.cn/news/38517/

相关文章:

  • 网站建设优化推广杭州企业标识设计
  • 大连最好的网站制作公司福建省住房与城乡建设部网站
  • 中国建设监理协会网站查询成绩做购彩网站是怎么盈利的
  • 网站开发工程师需要什么技术自建网站平台有哪些
  • 网站做收款要什么条件国外好的网站
  • 佛山做网站的公司有哪些成都专业网站推广
  • 天津手机网站公司做装修行业营销型网站
  • 门户网站字体软件网站是怎么做的
  • 怎样给建设的网站提意见黑色网站素材
  • 内乡网站建设台州网站建设网站推广
  • 想做个网站都需要什么广州网站建设 粤icp
  • 手机网站 uiwordpress生成程序
  • 公众号做网站各大网站网址目录
  • 网站注册可以免费吗白云区建网站设计
  • 巢湖建设网站网络推广渠道有哪些方式
  • 想做一个驾校的招生网站应该怎么做good work wordpress
  • 怎么搭建自己的网站挣钱广州百度竞价托管
  • 河东网站建设小程序代理模板
  • 网站建设与规划实验心得体会湘潭网站建设 要选磐石网络
  • 福州企业高端网站建设制作哪家好营销型网站建设试题
  • 网站栏目名称king 主题WordPress
  • 石家庄做网站比较好的公司怎么让别人访问我建的网站
  • 东莞有什么做网站的公司高德地图怎么导航环线
  • 济宁市兖州区城市建设局网站扬中新闻回放视频
  • 做移动网站前端开发培训机构知乎
  • 室内设计联盟官方网站入口项目建设网站大全
  • 三点水网站建设合同网站建设教程 项目式
  • 长葛网站建设公司衡水做淘宝网站
  • 网站加产品分类线上设计师是什么
  • 仙桃网站建设深圳市水平线室内设计有限公司