广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    C++绝对值怎么表示

    来源:网络收集  点击:  时间:2024-06-06
    【导读】:
    到目前为止,C++仍然是计算机编程领域的经典语言之一,C++17标准在2017上半年已经讨论确定。本期我们汇集了编程专家——祁宇(《深入应用C++11》作者,C++开源社区purecpp.org创始人)的多年经验总结,并详细介绍了C++17最新标准中值得开发者关注的新特性和基本用法。工具/原料more计算机编程方法/步骤1/7分步阅读

    一、pod类型编译期反射反射是一种根据元数据来获取类内部信息的机制,通过元数据就可以获取对象的字段和方法等信息。C#和Java的反射机制都是通过获取对象的元数据来实现的。

    2/7

    二、根据所提供的反射机制进行操作Java和C#都是基于中间运行时的语言,中间运行时提供了反射机制,所以反射对于运行时语言来说很容易,但是对于没有中间运行时的语言,要想实现反射是很困难的。

    3/7

    三、关键是操作的技术实现pod类型反射的思路是这样的:先将pod类型转换为对应的tuple类型,接下来将pod类型的值赋给tuple,然后就可以通过索引去访问tuple中的元素了。

    4/7

    四、关键是把pod键换pod键所以实现pod反射的关键就是如何将pod类型转换为对应的tuple类型和pod值赋值给tuple。

    5/7

    五、当pod类型转换为tuple类型时pod类型对应的tuple类型是什么样的呢?以上面的foo为例,foo对应的tuple应该是tupleint,char,即tuple中的元素类型和顺序和pod类型中的字段完全一一对应。

    6/7

    六、根据结构体生成一个tuple的基本思路按顺序将结构体中每个字段的类型萃取出来并保存起来,后面再取出来生成对应的tuple类型。C++也没有一个能直接保存不同类型的容器,因此需要用一个间接的方法来保存萃取出来的字段类型。

    7/7

    七、解决的一个问题是如何实现类型和id的相互转换。type和id在编译期相互转换先借助一个空的模版类用来保存实际的类型,再借助C++14的constexpr特性,在编译期返回某个类型对应的编译期id,就可以实现type转换为id了。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_883053.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 00:45:57  耗时:0.027
    0.0274s