【C++ 20进阶(1):模块导入 import】

【C++ 20进阶(1):模块导入 import】

原文:https://blog.csdn.net/weixin_44259356/article/details/143270205

引言

本篇文章为系列文章将着重介绍C++20新特性,一是希望可以和大家交流分享,二是也便于自己巩固学习。

1,import

C++ 20引入了对模块的支持,用来替代此前头文件机制,如:

cpp 复制代码
import <iostream>

此前我们导入导入头文件,纯C为:

c 复制代码
#include <stdio.h>

C++ 中为:

cpp 复制代码
#include <iostream>

C++中导入C标准库为:

cpp 复制代码
#include <cstdio>

模块机制有何好处呢?最大的好处便是可以大大提升编译效率,原来通过引入头文件,预编译过程中将加载此头文件包含的全部内容,include一次便加载一次,哪怕文件相同,而现在只需加载一遍export所定义的模块,将极大地提升预编译速度。

2,export

那么如何定义自己的公共模块呢?我们只需要在一开始声明此模块为export就行,如:

cpp 复制代码
export module moduleA;

那么如何导出自己想要导出的内容呢?也是导出内容前加export就行,如结构体:

cpp 复制代码
export struct StructA{
    int xx;
};

其他类似,如函数:

cpp 复制代码
export void f();

后续我将继续分享C++20一些新的有趣的知识点,感兴趣可以点个关注或者私聊,谢谢!

相关推荐
charlie1145141917 天前
精读C++20设计模式:行为型设计模式:中介者模式
c++·学习·设计模式·c++20·中介者模式
charlie1145141918 天前
理解C++20的革命特性——协程引用之——利用协程做一个迷你的Echo Server
网络·学习·socket·c++20·协程·epoll·raii
charlie1145141919 天前
理解C++20的革命特性——协程支持2:编写简单的协程调度器
c++·学习·算法·设计模式·c++20·协程·调度器
charlie1145141919 天前
精读C++20设计模式——结构型设计模式:外观模式
c++·学习·设计模式·c++20·外观模式
渡我白衣10 天前
C++ :std::bind 还能用吗?它和 Lambda 有什么区别?
开发语言·c++·c++20
charlie11451419110 天前
理解C++20的革命特性——协程支持1
c++·学习·c++20·协程·语言特性·调度·现代c++
渡我白衣10 天前
C++20 协程:在 AI 推理引擎中的深度应用
大数据·人工智能·c++20
charlie11451419111 天前
精读 C++20 设计模式:行为型设计模式 — 访问者模式
c++·学习·设计模式·访问者模式·c++20
charlie11451419112 天前
精读C++20设计模式——行为型设计模式:命令模式
c++·学习·设计模式·程序设计·命令模式·c++20
charlie11451419113 天前
精读C++20设计模式——行为型设计模式:迭代器模式
c++·学习·设计模式·迭代器模式·c++20