• 面向C++模块的开源 IFC SDK


    早在 VS2019 v16.10 版本的时候,我们就官宣了对 C++ 模块(以及几乎所有其他 C++ 20 特性)的全面支持,包括 MSVC 编译器工具集,静态分析,智能感知和调试器等,而实现模块需要将 C++ 代码实现为一种内部的临时表示形式。

    今天,我们高兴地宣布将 IFC SDK 开源,它是 Microsoft 对 IFC 规范的一个实现。
    IFC 规范将 C++ 程序形式化为适合基于语义操作的数据。
    我们开源 IFC SDK 的目的是,希望加速 C++ 模块在 C++ 社区和 C++ 工具生态系统中的广泛使用和实施。

    什么是 IFC 以及它的作用是什么?

    C++ 模块接口(或头单元)源文件的一种常用编译策略是将源文件(恰好一次)转换为适合在其他源文件中重用的内部表示形式。这种中间形式通常称为构建模块接口(BMI)。IFC文件则是 BMI 概念的实现。IFC 文件是与 C++ 程序的语义有关的所有信息的持久性表示。

    除了编译器直接使用C++模块外,还可以通过非编译器工具检查 IFC,以便对C++源文件进行基于语义的探索。这些工具对于探索者了解如何以适合 C++ 模块实现的形式表示 C++ 源代码级构造非常有用。

    IFC SDK 的使用

    IFC SDK 目前是一个实验项目。它侧重于提供支持 IFC 文件读写的数据类型和源代码。此 SDK 与 MSVC 编译器前端中用于实现 C++ 模块的经过测试的实现相同。
    这些数据类型可以直接进行内存映射,以实现可扩展和高效的处理。
    该项目还具有用于格式化或查看 IFC 文件的实用程序。我们欢迎并且正在寻找能够弥补SDK和规范之间差距的贡献,以及支持从 C++20 及更高版本开始的 C++ 标准所需的更改。

    总结

    继续老老实实使用传统 C++ 头文件和类,除非有一天 C++ 模块更合适我的项目。
    我是一个既开放又保守的开发人。

    最后

    Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
    本文来自:《Open Sourcing IFC SDK for C++ Modules》

  • 相关阅读:
    c语言练习65:写一个程序拷贝文件
    ProtoPie for Mac(高保真交互原型设计工具)
    golang iris框架 + linux后端运行
    linux gdb运行不下去的程序调试方法
    浅拷贝与深拷贝
    【LeetCode】24. 两两交换链表中的节点
    Android平台GB28181设备接入模块相关博客概览
    Redisson
    基于JAVA的网上拍卖秒杀系统,拿去参考【数据库设计、源码、开题报告】
    Linux Shell 编程基础语法汇总
  • 原文地址:https://blog.csdn.net/mmxida/article/details/133834158