【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一些新的有趣的知识点,感兴趣可以点个关注或者私聊,谢谢!

相关推荐
Codeking__7 小时前
C++20的consteval和constinit(接C++11的constexpr)
算法·c++20
六bring个六3 天前
C++20协程
c++20·协程
C++实习生3 天前
Visual C++ 2005 Express 中文版
express·c++20
Ethan Wilson5 天前
VS2019 C++20 模块相关 C1001: 内部编译器错误
开发语言·c++·c++20
DYS_房东的猫5 天前
《 C++ 零基础入门教程》第10章:C++20 核心特性 —— 编写更现代、更优雅的 C++
java·c++·c++20
ice_junjun15 天前
C++20 线程返回值处理指南
c++20·c++ 多线程返回值
凌乱风雨121118 天前
从源码角度解析C++20新特性如何简化线程超时取消
前端·算法·c++20
shuai132_1 个月前
【无标题】
c++20
ULTRA??1 个月前
基于range的函数式编程C++,python比较
c++·python·kotlin·c++20
apocelipes1 个月前
从源码角度解析C++20新特性如何简化线程超时取消
c++·性能优化·golang·并发·c++20·linux编程