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

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()))是多少,就能够达到我们最终的目的了。

手机就能拍出电影高级感,三星GalaxyS21系列有哪些科技加持?近年来,随着社交媒体的发展和短视频创作风潮的井喷,用户更愿意用手机记录生活点滴。在社交媒体上交流互动,既可以记录生活也可以获得社交场上更多的关注,每个人都可以成为生活电影的主人公。老司机告诉你如何最短时间在京东抢到iPhone8!作为iPhone8及iPhone8Plus的首发平台,京东将于明天早上8点01分同步苹果官网正式开售,想要在第一时间抢到iPhone新品,手里没点秘籍什么的还真不好办,小编在此为大空心村变产业村,河北1073个空心村完成整治随着城镇化持续推进,大量农村人口到城市发展,不少村庄出现空心化现象。为精准解决空心村问题,激发农村发展新活力,河北省把空心村治理与加快新型城镇化建设实施乡村振兴战略有机结合起来,按首只产业园区类基础设施公募REITs花落招商蛇口筑梦师4月21日晚间,招商蛇口(001979。SZ)发布公告称,董事会审议通过关于开展基础设施公募REITs申报发行工作的议案,拟以子公司拥有的部分项目作为基础资产开展博时招商蛇口杭州的新破局针对中央多次强调的防止资本无序扩张,杭州决策者比谁都明白,一个城市没有强大的实体经济支撑,不可能走得太远。抛开互联网产业,杭州在实体产业方面,只有数字安防产业在国内外叫得响亮,但数我国首个跨省级行政区设立的三区叠加经济区廊坊临空经济区依托北京大兴国际机场,河北与北京两省市联手打造了北京大兴国际机场临空经济区河北自贸区大兴机场片区,大兴国际机场综合保税区。创造了我国首个跨省级行政区的经济区。三区叠加北京大兴国际机第一高中教育集团在美上市衡水中学资本化争议21财经第一高中教育集团(NYSEFHS)近日在美国上市。这家自称西部最大全国第三的民办高中集团,短短几年时间旗下就已设立19所学校,超过2。5万名学生就读。这些学校里,除了4所高央行官员谈数字货币如何发展?第一次谈比特币如何监管?中国证券报4月18日晚间,博鳌亚洲论坛2021年年会数字支付与数字货币分论坛举行。博鳌亚洲论坛副理事长中国人民银行前行长周小川,中国人民银行副行长李波,就数字货币将如何改变支付体系感到压力拜登政府正在研究数字人民币随着我国央行数字货币试点工作的顺利推进,众人对其都抱有很高的期望。尤其在推进人民币国际化方面,市场上颇为流行的各类说法认为央行数字货币是权力在数学上的映射,谁能率先推出央行数字货币河北保定市开启大手笔投资时代保定市近水楼台,借助身临京津冀协调发展,雄安新区建设的两大国家战略之境的历史机遇,围绕建设现代经济体系,全面规划,大手笔投资,进入一个全新发展的时代。发展医车电数游五大产业。保定市我国高层开始关注大宗商品价格冀资严高层第一次明确提到大宗商品价格,是在2021年3月25日的部分地方政府主要负责人视频座谈会,李克强说,要着力把经济运行保持在合理区间,为可持续健康发展奠定坚实基础。当前国际环
售价10万的妻子机器人,除了生孩子什么都能做?别被骗了人类对机器人的研发,从最早期的工业机器人,经过不断迭代,衍生出各种形态运用于各领域的机器人。近几年,有消息称日本有一个科研团队研发出了一款妻子机器人,功能非常强大,售价仅卖10万一华为开启2022年校招,偏爱浙大和哈工大,工资待遇羡煞旁人如果让大家提一个走向世界的中国品牌,相信很多人都会想到华为。作为一个知名的跨国公司,华为的薪资待遇和晋升机制在全国都是数一数二的。因此,每年都有数以万计的学生想要毕业后,顺利进入华小鹏一季度净亏17亿元,最强中大型纯电SUVG9小鹏三季度上市5月24日消息,日前小鹏汽车对外公布一季度财报。财报显示,一季度公司营收74。5亿元,同比增长152。6,第一季度净亏损17。0亿元,同比增长116。2截至一季度末,小鹏汽车现金储高通WiFi7芯片更多消息曝光,iPhone12低至百元沦为弃机5月24日,据台湾经济日报报道,高通今天表示,WiFi7芯片已经交付给客户,终端产品预计在今年年底之前上市。在202324年达到10。针对WiFi7渗透率何时达到10的问题,高通高数源科技目前5G通信壳业务占比较小中证网讯(记者董添)数源科技5月24日晚间发布股票交易异常波动公告。公告显示,近期公司关注到多家媒体关于公司研发生产的5G通信壳报道的相关新闻,5G通信壳属于特定用户的个人消费电子华为的招牌不灵了?换标Mate40销量惨淡华为曾是国内手机市场的第一大品牌,市场份额一度接近50。然而好景不长,华为遭遇了不公正的打压,最直接的影响就是从2019年9月之后无法再正常购买手机所需的芯片。因此这两年华为手机的美院士担心的事情出现了,小米联手徕卡,能超越华为的销量神话?就在昨日,华为代表确认了在3月底就已经结束了与徕卡长达5年的合作,随后徕卡就选择与国产后起之秀小米进行合作。这一刻,或许很多国人消费者不明白意味着什么,但对于国外厂商,甚至整个西方年供600吨稀土,帮苹果抢国内市场?网友华为的事才过去多久众多消息显示,苹果预计将在今年9月份推出iPhone14系列新机。众所周知,苹果在中国市场的竞争力一直很强,它占据了中国大部分市场。如今,年轻人喜欢使用苹果手机和其他苹果产品。可以数据如何变富矿,重塑企业治理模式和竞争力物料在一楼自动刷卡乘梯上楼,被送往五层的仓库中四楼出料区,AGV送货小车自由往返于仓库和车间生产车间里,电路板扫码进站搭车般进入流水线,从第一道工序开始按部就班跑起来。在佛山智造工1年流失6400万玩家,大佬出走腾讯网易?暴雪还有救吗?哈喽大家好,我是X博士。前阵子,动视暴雪发布了第一季度的最新财报,收入比去年同期掉了22,净利润暴跌36,用户活跃方面更惨了,直接少了6400万玩家。更让人意外的是,数据这么惨,动裸藻为什么还能抵抗90高温?深企这项研究有答案近日,植物学领域国际权威刊物新植物学家(NewPhytologist)在线发表深圳华大生命科学研究院德国马普合作研究成果。该研究发布了平藻纲首个染色体水平绿藻基因组,揭示了作为无细