范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

C判定类型A是否能够基于隐式类型转换转为B类型?

  原文见 C++ 有哪些鲜为人知的奇特操作? - 知乎,直接看代码:// 自定义两个内存大小不一样的类型,作为"布尔值" typedef char __True; typedef struct { char _[2]; } __False;  template  class IsCastable { private: 	// 稻草人函数 	static A __A(); 	// 两个同名函数 __Test,入参分别是 B 和可变参数,返回值和入参不同 	static __True __Test(B); // 函数 1 	static __False __Test(...); // 函数 2    public: 	static constexpr bool Value = sizeof(__Test(__A())) == sizeof(__True); };  int main() { 	std::cout << IsCastable::Value << std::endl; // int 到 double,能够进行隐式类型转换,调用了函数1,返回 true 	std::cout << IsCastable::Value << std::endl; // int 到 string 不能够进行隐式类型转换,调用了函数2,返回 false }
  解释如下:
  1. 上述 IsCastable 类中首先声明了一个"稻草人函数"(无函数体),唯一的作用是获得一个 A 类型的值给 sizeof 看。 有人会问,为什么不直接使用形如"T()"这样的写法呢?很显然,因为并不是所有的 T 都具有默认构造函数,而如果 T 没有默认构造函数,那么"T()"就是错误的。
  2. 上述 IsCastable 类中声明了一对重载函数(__Test),这两个函数的区别有二:返回值不同,一个是 sizeof 的结果为 1 的值,而另一个是 sizeof 的结果为 2 的值形参不同,一个是 B,一个是"..." ,也就是说,如果我们给这一对重载函数传入一个 A 类型的值时,由于"..."参数的重载确定优先级低于其他一切可行的重载版本,只要 A 到 B 的隐式类型转换能够发生,重载确定的结果就一定是调用第一个版本的函数,返回值为__True;否则,只有当 A到 B 的隐式类型转换真的不可行时,编译器才会"被迫"选择那个编译器"最不喜欢的版本",从而使得返回值为__False。返回值的不同,就能够直接体现在 sizeof 的结果不同上。所以,只需要判定sizeof(__Test(__A()))是多少,就能够达到我们最终的目的了。

蓝牙手提音箱CERED认证蓝牙音箱指的是内置蓝牙芯片,以蓝牙连接取代传统线材连接的音响设备,通过与手机平板电脑和笔记本等蓝牙播放设备连接,达到方便快捷的目的。目前,蓝牙音箱以便携音箱为主,外形一般较为小巧便美国CPSC新要求LED灯具CPC认证申请流程周期价格美国CPSC新要求LED灯具CPC认证申请流程周期价格美国CPSC从20210322开始改革,开始electronicallyreviewentry,凡是他们管辖范围内的产品,都会世界上头发最长的三个人,相当于五层楼高度,晾干要花两天第3名谢秋萍中国广西人,头发约5。6米长,一头又黑又亮又长又美的直发让人惊叹不已,跟别人不同的是,她的头发长得比韭菜还快,小学毕业时,就长到了脚后跟。谢秋萍很爱惜自己的头发,每次出这三个猫咪,以可爱闻名全球,萌感十足,我要报名去做铲屎官第3名布偶猫它的样子十分可爱,有一双迷人的蓝眼睛,而且身上的毛也特别松弛柔软,像软绵绵的布偶一样,除了萌化人心的外表外,性格也十分温和,喜欢和小孩子玩耍,许多家庭都喜欢养它。布偶猫全球最适宜居住的三个城市,很多人去了,都不想离开第3名大阪日本第二大都市,是一座很安全的城市,犯罪率很低,人们平常在咖啡馆去柜台点餐时,把个人物品留在桌子上,都不用担心东西被偷,而且大阪也是一座工作很勤奋的城市。总之,氛围让人感这三个电影,被公认为全球喜剧电影的代表,不说了我先去笑会第3名宿醉上映于2009年,由托德菲利普斯执导,讲述了三个伴郎和马上举行婚礼的新郎在单身聚会中大醉一场,结果醒来后,发现新郎不见了,他们必须回忆起昨晚发生的一切才能找回新郎,顺利举全球最贵的午餐,一顿饭2000多万,可与世界首富一起进餐价值2100万的午餐,啾咪啾咪!中国仅有三人吃过没错,就是巴菲特这个男人搞的慈善午餐,每年他都会发起午餐拍卖,即以慈善拍卖的形式,获得与他共进午餐的机会,中标者则是可以邀请7位朋友神秘的巨坑,其中一个被称为地狱之门,从白天燃烧到夜晚啾咪啾咪,这里是发兔看世界天啦噜,这三个巨坑也太恐怖了吧第3名蒙地赛罗水坝位于美国加州纳帕县,它是美国大型循环泄洪道,每秒出水量可达1370立方米不小心掉下去的话,那很有可能像一颗这三款项链最贵,其中一个你绝对见过,被认为是稀世珍品第3名TheHeartoftheKingdom被命名为王国之心,是一条红宝石项链,该项链的红宝石重量为40。63克拉,在红宝石的周围还搭配了150颗大小不一的钻石,样式十分奢华高贵澳大利亚ctick认证申请流程CTick是澳大利亚的电磁兼容部分,由澳大利亚通讯局(ACAAustraliaCommunityAssociation)来管制,目前只对干扰部份进行管制,管制范围内的产品从1999移动电源怎么做REACHSVHC认证,REACHSVHC申请流程如何移动电源怎么做REACHSVHC认证,REACHSVHC申请流程如何REACHSVHC的概念欧盟REACH法规是Registration,Evaluation,Authorisat
应届生无经验想找亚马逊运营,要找铺货还是精品,应该怎么区分?建议选择精品模式的公司。不管是无经验的应届生还是有一定经验的亚马逊运营而言,铺货型公司都不是个人职业规划的好选择。现如今大部分亚马逊公司都自诩自己是做精铺的公司,认为只要自己上的产行业资讯OpenInfra边缘计算团队最近在忙什么对大多数人来说,2021年是忙碌而不同寻常的一年,我们没有停止探索边缘计算。随着电信和其他行业加大5G的生产部署,以及激动人心具有创意的用例,我们意识到要做的还有很多。OpenIn谷歌Nest智能恒温器被判专利侵权,赔偿2000万美元财经网科技2月11日讯,据凤凰网科技消息,美国西得州的一个陪审团周四裁定,谷歌因其Nest智能恒温器侵犯了能源管理公司EcoFactor的专利权,需要赔偿2000万美元(约合1。3鞭牛晚报腾讯调整内容业务板块好时线上线下撤柜闭店编者按鞭牛士将以晚报形式盘点今日内发生的重要事件,内容涵盖国际国内科技互联网,为科技行业从业者用户传递行业信息。国内新闻1怼腾讯的应届生被炒且永不录用?本人回应反而有很多HR主动联你知道的催收公司有哪些?他们的地址在哪里?主要催哪个平台?现在的催收都精明得很,不会告诉你他是哪个公司,催的是哪个平台,就催你还钱。自己如果就一个平台或者信用卡还好,如果有几个都不知道是哪个催的这么急。网上爆出来成都360的那个公司,都可央行孙天琦大V通过社交媒体带货销售金融产品必须持牌近日,中国人民银行金融稳定局局长孙天琦在中国金融刊文表示,在数字经济快速发展金融领域深化改革和扩大开放的大背景下,互联网平台或技术对于增强金融机构特别是中小金融机构获客能力,拓展普WhatsApp封号原因及解封邮件(内附邮件模板)WhatsApp是国外一款基于互联网通信技术的能够让用户通过这个软件来给亲友和同事发送信息图片音频文件和视频内容的社交平台。WhatsAPP与我们国内的微信的作用差不多。都是使用手华为手机怎么弄可以让陌生号打不进来电话?我认为,这就是安卓手机比苹果手机好用的一个方面,因为它可以自定义拦截短信以及电话,非常方便,我并不是说苹果手机不能拦截电话,但要比好用性,苹果还差十万八千里。那么华为手机怎么设置可苹果传来消息,库克为了业绩,真的是想尽办法讨好果粉众所周知,手机行业从两个方向来划分的话,主要分为安卓和IOS两大阵营,虽然去年还出现了鸿蒙系统,但毕竟是一款刚刚发布的产品,所以系统生态和成熟度相比于安卓与IOS还有不小的差距,目威马汽车,你意想不到的智能便捷随着汽车行业的不断变化,新能源汽车的发展前景是非常广阔的。威马汽车是国内新兴的一股新兴力量,它始终将卓越的产品和周到的服务奉献给消费者。从2018年开始,威马已经发布了威马EX5,中国还有没有像华为和格力这样愿意花大力气做研发的企业呢?谢邀!首先我们要纠正问题中一个比较严重的问题,那就是格力在研发投入上并不算是排在前列,而且我们在过去这一年的研发投入排行榜上,前20名都没有格力的名字,甚至排在海信和美的集团后面。