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

news2026/2/8 5:47:54

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

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

引言

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

1,import

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

import <iostream>

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

#include <stdio.h>

C++ 中为:

#include <iostream>

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

#include <cstdio>

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

2,export

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

export module moduleA;

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

export struct StructA{
    int xx;
}

其他类似,如函数:

export void f();

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2227201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue使用xlsx以及file-saver进行下载xlsx文件以及Unit8Array、ArrayBuffer、charCodeAt的使用

先说Unit8Array、ArrayBuffer、charCodeAt的使用下面会用到这三个 Unit8Array&#xff1a;数组类型表示一个 8 位无符号整型数组&#xff0c;创建时内容被初始化为 0。创建完后&#xff0c;可以以对象的方式或使用数组下标索引的方式引用数组中的元素。 new Uint8Array(); //…

Python中的数据可视化:Matplotlib基础与高级技巧

Python中的数据可视化&#xff1a;Matplotlib基础与高级技巧 数据可视化是数据分析和数据科学中不可或缺的一部分。通过图表&#xff0c;我们可以更直观地观察数据的分布和趋势。Matplotlib作为Python最基础、也是最广泛使用的绘图库之一&#xff0c;不仅支持多种常用图表&…

Android Studio中Gradle一直在加载怎么解决(首次安装过程中)

目录 前言&#xff1a;遇到问题&#xff1a;已解决&#xff1a; 前言&#xff1a; Android Studio中Gradle一直在加载怎么解决&#xff08;首次安装过程中&#xff09;&#xff0c;在安装Android Studio的过程中&#xff0c;我因为环境的问题&#xff0c;被困扰了一天&#xf…

合合信息发布智能文档处理“百宝箱”,助力文档应用开发

文档是知识传递的载体&#xff0c;无论是大模型应用发展&#xff0c;还是与产业数字化息息相关的高质量数据库的建立&#xff0c;都离不开对于文档数据的处理和分析。目前&#xff0c;越来越多的开发者开始关注文档数据处理背后的“文档解析”技术&#xff0c;用以实现自动化数…

python常见内置函数

介绍Python常见的内置函数。 1、abs 取一个数的绝对值 int_value -2 print(abs(int_value))2、all 若一个可迭代对象(可循环遍历的对象)中所有元素为真&#xff0c;结果为真 list_value1 [1,2,3,4,0] list_value2 [1,2,3,4] print(all(list_value1)) print(all(list_va…

【cmake实战六】如何使用编译的库(动态库dll)——windows系统

【cmake实战六】如何使用编译的库&#xff08;动态库dll&#xff09;——windows系统_make windows下生成库-CSDN博客 基于以上文章&#xff0c;遇到的一些问题&#xff1a; 一、首先我用vs code 新建了一个项目&#xff1a;TEST 新增文件&#xff1a;CMakeList.txt #…

Kafka 与传统 MQ 消息系统之间有三个关键区别?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka 与传统 MQ 消息系统之间有三个关键区别&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Kafka 与传统 MQ 消息系统之间有三个关键区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 …

微信小程序的日期区间选择组件的封装和使用

组件化开发是一种将大型软件系统分解为更小、更易于管理和复用的独立模块或组件的方法。这种方法在现代软件开发中越来越受到重视&#xff0c;尤其是在前端开发领域。微信小程序的日期区间选择组件的使用 wxml 代码 <view><view bind:tap"chooseData">…

flask自学教程(二)

文章目录 前言一、中型flask目录二、大型flask目录1.启动文件run.py定义2.实例创建文件定义&#xff08;app/__init__.py&#xff09;3.配置项config.py4. app/routes下的__init__.py5. 定义一个路由并写一个静态页面6. 模型文件7.static目录8.requirements.txt依赖 3.flask&am…

威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301

近年来&#xff0c;网络犯罪世界出现了新的、日益复杂的威胁&#xff0c;能够影响广泛的目标。 这一领域最令人担忧的新功能之一是Cicada3301勒索软件&#xff0c;最近由几位网络安全专家进行了分析。他们有机会采访了这一危险威胁背后的勒索软件团伙的成员。 Cicada3301的崛…

C/C++ 随机数生成方法

1. 使用 rand() 和 srand() - 库: <stdlib.h> 或 <cstdlib> - 特点: 伪随机数生成器&#xff0c;简单易用。 - 示例: #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // 初始化随机数生成器 int random_nu…

openEuler 系统进程管理全攻略

openEuler 系统进程管理全攻略 一、前言 在 openEuler 操作系统中&#xff0c;进程管理是系统管理的重要组成部分。有效地管理进程可以提高系统的性能、稳定性和安全性。本文将详细介绍 openEuler 系统中与进程管理相关的操作、工具和命令&#xff0c;包括它们的应用场景和使…

Jenkins发布vue项目,版本不一致导致build错误

问题一 yarn.lock文件的存在导致在自动化的时候&#xff0c;频频失败问题二 仓库下载的资源与项目资源版本不一致 本地跑好久的一个项目&#xff0c;现在需要部署在Jenkins上面进行自动化打包部署&#xff1b;想着部署后今后可以省下好多时间&#xff0c;遂兴高采烈地去部署&am…

技术成神之路:设计模式(二十一)外观模式

相关文章&#xff1a;技术成神之路&#xff1a;二十三种设计模式(导航页) 介绍 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供一个统一的接口。外观模式定义了一个高层接口&#xff0c;使得子系统更容易使用。 …

十六:Python学习笔记-- 爬虫(2)requests 模块详解

目录 安装 requests 模块 基本请求方法 GET 请求 POST 请求 PUT 请求 DELETE 请求 添加请求头&#xff1a; 处理查询参数&#xff1a; 文件上传&#xff1a; 常见响应状态码 访问超时 cookie的查询和设置 查询 Cookies 设置 Cookies 设置爬虫代理 小试牛刀 安装 …

QStringList 使用详解

QT开发之路 企业级开发系列文章&#xff0c;主要目标快速学习、完善、提升 相关技能 高效完成企业级项目开发 分享在企业中积累的实用技能和经验。 通过具体的编码过程、代码示例、步骤详解、核心内容和展示的方法解决遇到的实际问题。 转载请附上文章出处与本文链接。 QStrin…

尚硅谷 | Nginx | 学习笔记

尚硅谷 | Nginx | 学习笔记 尚硅谷Nginx教程由浅入深&#xff08;一套打通丨初学者也可掌握&#xff09;_哔哩哔哩_bilibili 文章目录 尚硅谷 | Nginx | 学习笔记一、Nginx相关概念1.Nginx是什么2.正向代理和反向代理正向代理反向代理 3.负载均衡和动静分离负载均衡动静分离 二…

AtCoder ABC376A-D题解

个人觉得 ABC 变得越来越难了/kk/kk/kk 比赛链接:ABC376 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int N,C;cin>>N>>C;for(int i1;i<N;i)cin>>T[i];int ans0,pre-1e5;for(int i1;i<N;i){if(T[i]-pre>C){…

后台管理系统的通用权限解决方案(五)SpringBoot整合hibernate-validator实现表单校验

1 hibernate-validator介绍 早期的网站&#xff0c;用户输入一个邮箱地址&#xff0c;需要将邮箱地址发送到服务端&#xff0c;服务端进行校验&#xff0c;校验成功后&#xff0c;给前端一个响应。 有了JavaScript后&#xff0c;校验工作可以放在前端去执行。那么为什么还需要…

【02基础】- RabbitMQ基础

目录 2- RabbitMQ2-1 介绍和安装安装 2-2 RabbitMQ 快速入门2-3 RabbitMQ 数据隔离 3- Java客户端3-1 快速入门AMQP快速入门&#x1f4d1;小结&#xff1a;SpringAMQP如何收发消息&#xff1f; 3-2 WorkQueues 任务模型案例-使用 WorkQueue 单队列绑定多消费者&#x1f4d1;小结…