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

校园门户网站建设公司装修案例分享的文案

校园门户网站建设公司,装修案例分享的文案,手机网站后台管理,做网站关键词软件目录 行为 实现代码 enable_if_t 注意事项 行为 enbale_if调用方式如下 std::enable_if<布尔型变量&#xff0c;类型>::type 假如第一个输入参数为真&#xff0c;则最终的type与enbale_if<>模板里第二个输入参数的类型相同&#xff1b;否则模板匹配失败。 …

目录

行为

实现代码

enable_if_t

注意事项


行为

enbale_if调用方式如下

std::enable_if<布尔型变量,类型>::type

假如第一个输入参数为真,则最终的type与enbale_if<>模板里第二个输入参数的类型相同;否则模板匹配失败。

实现代码

下面是enable_if代码的大致实现:

template<class T>
struct enable_if<bool, T>{}template<class T>
struct enable_if<true, T>
{using type = T;
}

可见,如果enable_if的第一个输入参数为假,则匹配第一个enable_if模板。此时enable_if不含有type,故任何enable_if::type的调用都是无效的,匹配失败;

只有当enable_if的第一个输入参数为真,enable_if才含有type类型,且此时type对应类型T。

enable_if_t

template<bool b, class T>
using enable_if_t = typename enable_if<b, T>::type;

enable_if_t是C++14引入的,其功能是简化enable_if<...>::type

注意事项

理论上,你可以做如下操作:

#include <iostream>template<class T>
typename std::enable_if<std::is_integral<T>::value, T>::type func(T t)
{return t + 10;
}template<class T>
typename std::enable_if<!std::is_integral<T>::value, T>::type func(T t)
{return t;
}int main(void)
{std::cout << func(50) << std::endl;std::cout << func(0.1) << std::endl;std::cin.get();return 0;
}

上述代码确实在编译时实现了类似运行时if-else的功能。但是根据scott meyes的《Effective C++ 11》,避免将enable_if用作函数签名:在返回值或者输入参数里使用enable_if来实现模板匹配是不被提倡的

http://www.dtcms.com/a/441522.html

相关文章:

  • 网站建设买阿里云云服务器暴雪加速器
  • 装饰公司做网站怎么收费青白江建设网站
  • 内蒙古建设安全监督站的网站全屏网站代码
  • 南京网站运营公司商业网站设计方案
  • 上海网站建设 销售广州地区网站建设
  • 医院诊所响应式网站模板手机网站成功案例
  • 网站建设既有书籍又有光盘网站模板 安装
  • 怎么做门淘宝网站代刷网站推广链接免费
  • 做论坛网站需要备案移动互联网开发
  • 网站开发需要那些技能中国工程建筑门户网站官网
  • 怎样做读书会网站wordpress 豆瓣 主题
  • 如何做好网站的建设与维护深圳 网站建设 公司
  • 浙江高端建设网站网站怎么改域名
  • wordpress建站详细教程视频现在公司一般用什么邮箱
  • 做外贸网站价位上海 企业网站建设
  • 东莞百度网站快速优化东莞物流网站设计公司
  • 宁夏建设厅网站首页深圳网站设计价格表
  • 行业网站建设方案免费ps软件网站
  • 网站整站优化公司做网站排名步骤
  • 成都电子商务网站河南网站备案代理
  • 君临天下游戏网站开发者东莞网络推广服务外包
  • 做阿里巴巴还是做网站好软件最全的软件商店
  • 建站费用明细网站怎样做移动端
  • 织梦建的网站在哪银行网站建设前期合同
  • 惠州微网站推广方案怎样建网上商城
  • fwa 网站 欣赏中国监理建设注册网站
  • 网站主页效果图佛山新网站制作渠道
  • 重庆建设厂招工信息网站做一普通网站需要多少钱
  • 做网站原型的软件中国空间站天宫课堂
  • 中山企业网站建设定制电商平台发展现状与趋势