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

做跨境电商的人才网站做球形全景的网站

做跨境电商的人才网站,做球形全景的网站,婚庆公司策划书,wordpress带下载功能简单地说#xff0c;由 Google 开发的 include-what-you-use#xff08;IWYU#xff09;让源代码文件包含代码里用到的所有头文件。这种方法确保在改动了一些接口之后#xff0c;代码依然最有可能编译成功。 之前我写了一篇关于 include-what-you-use 工具的文章#xff… 简单地说由 Google 开发的 include-what-you-useIWYU让源代码文件包含代码里用到的所有头文件。这种方法确保在改动了一些接口之后代码依然最有可能编译成功。 之前我写了一篇关于 include-what-you-use 工具的文章它会建议使用提前声明来加速编译时间并且检测可能导致可移植性问题的对间接包含的意外依赖。 但是你也可能注意到该工具引起的一些负面问题。 1、问题确保间接包含 你首先会注意到的一个问题是遵循“包含你所使用的”有时候会造成一些困扰。使用一种包含其它头文件的“便捷头文件”是一种常见操作许多 Boost 类库使用了这一方法。例如我们包含了 boost/mp11.hpp 来使用所有 Boost.Mp11 里提供的元编程相关的工具。 #include boost/mp11.hppusing my_types boost::mp11::mp_listint, char, float;但是 IWYU 并不知道这一点相反它建议我们包含 boost/mp11/detail/mp_list.hpp 以使用 mp_list而这显然是错的。 如果你在编写一个类库你可以使用一种特殊的注释来修复该问题 // IWYUpragma: export // somewhere in a Boost.Mp11 header file #include boost/mp11/detail/mp_list.hpp // IWYU pragma: export 这里告诉了 IWYU 这一行的头文件里的内容都确认被上面包含的头文件包含了并可以使用。 提示当编写类库是使用“便捷头文件”并且要使用 IWYU使用 // IWYU pragma: export 或者是更加常用的 begin_exports/end_exports来标识已经确认包含了的头文件。 如果你不是在编写类库使用 // IWYU pragma: keep 来告诉IWYU 确保该头文件要被保留检测到但是并没有指令能确认包含该头文件就一定是正确的。 所以的指令可以在这里查看https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md 2、非侵入指令映射文件 解决以上问题有个非侵入式的方法创建映射文件在映射文件里你可以定义哪些符号应该对应哪些头文件。 在我们的例子里我们想指定 boost::mp11::mp_list 是由 boost/mp11.hpp 提供的。所以我们创建一个 mp11.imp 文件包含以下内容: [ { symbol: [boost::mp11::mp_list, private, boost/mp11.hpp, public] } ]该文件的语法类似 JSON包含了一些数组类型的指令。在这里我们使用 symbol 指令来指定具有某种可见性因为某些原因这里必须是 private的某个特定符号boot::mp11::mp_list是由某个具有某种可见性通常是 public的指定头文件boost/mp11.hpp提供的。 然后我们使用 -Xiwyu -mapping_filemp11.imp 将这该映射文件传递给 IWYUIWYU 就不会在提示过多的信息了。 提示使用一个符号映射文件来告诉 IWYU 你要包含哪些头文件所有符号都可以用该方法但是有点太过繁琐。 不过好在还有个更好的方法我们可以使用 include 指令来将一个头文件重映射到另一个头文件或者将一整个文件夹重映射到一个头文件[ { include: [“boost/mp11/.*”, “public”, “boost/mp11.hpp”, “public”] } ] 这里的 是一个通配符我们在这里把在指定文件夹里的所有头文件我们认为是公共的映射到另一个头文件我们认为也是公共的。 IWYU 不会再提示任何 boost/map11/*里的头文件而是提示 boost/mp11.hpp。而既然我们已经在代码里包含了所以也就一切正常。 提示使用包含映射让一个头文件或者多个头文件映射为另一个头文件。 最后的指令是 ref让多个 .imp文件合并为一个。 请查看这些关于映射文件的文档https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md 3、结论 就个人来讲我并不为映射文件困扰而不必困扰是因为我从不自动运行 IWYU一般是手动运行并查看它输出的建议变更。这样做是非常值得的通过清理一些不必要的包含指令我可以明显提升编译的速度。 期望以后模块化可以让这些操作变得不再必要。 4、让 IWYU 更上一层楼 在游戏、自动化、金融和其它前沿领域的公司都面临着在高峰时段增加计算能力的需求和更快地响应市场的压力仅仅使用 IWYU 是无法完全应对这些挑战的。 通过将任务分布在网络中的本地机器或者是虚拟机上并且无缝地运行Incredibuild 的创新解决方案可以为耗时的任务进行加速例如编译、测试和其它任务。这让各种大小不同的组织都可以用一套完整的解决方案来保证速度、准确性和透明可见。 点击了解 Incredibuild 加速 C/C 构建编译的解决方案并获取试用 License
http://www.dnsts.com.cn/news/254656.html

相关文章:

  • 做海岛旅游预定网站的百度优化师
  • 网站建设学习视频沧州企业做网站
  • 家具营销型网站9个常用的wordpress sql查询命令
  • vps搭建个人网站网站后台默认用户名
  • 建设机械网站策划网页制作的教程视频
  • 超全的开源建站系统大全个人可以做外贸的网站
  • 免费起名网最好的网站如何做一个单页面的网站
  • 冷水滩城乡建设局网站网站建设案例哪家好
  • 怎么给公司做简单网站wordpress 主题 标签
  • 北京好用的h5建站小程序代理设置
  • 网站建设通知书pc端网站开发技术
  • 一站多通怎么做网站湘潭网站建设厦门网站制作
  • 网站打开有声音是怎么做的wordpress数据库批量替换网址
  • 做网站的公司好坑啊seo优化按天扣费
  • 做网站应该会什么问题新世纪建设集团网站
  • 自己做的网站只能打开一个链接工程建设网最新信息网站
  • 营销型网站建设方案网站建设公司 网络服务
  • 网站建设方案内容作文网址有哪些
  • 专业网站优化案例软件开发公司专业的有哪些
  • 网站开发专业分析wordpress判断用户权限
  • wordpress域名改了wordpress 优化提速
  • 大连做网站哪里好怎么介绍自己的网页设计
  • 网站给挂黑链中英文切换网站开发
  • 动漫网站设计电脑端游排行榜前十名网络游戏
  • 青岛学网站建设的大学博物馆建设网站
  • 简单公司网站源码西安有什么好玩的景点推荐
  • 广东省网站备案查询wordpress search页面
  • 做华为网站的还有哪些功能wordpress搬家 500
  • 做校服的网站自己做的网站怎么放上网
  • 点点站长工具现在网站建站的主流语言是什么