模块 (C++20 起)
模块有助于将大量代码分拆为各个逻辑部分。
模块与命名空间是正交的。
// helloworld.cpp export module helloworld; // 模块声明 import <iostream>; // import声明 export void hello() { // export声明 std::cout << "Hello world!\n"; }
// main.cpp import helloworld; // import声明 int main() { hello(); }
语法
export (可选) module 模块名 模块分区(可选) 属性说明符序列(可选) ;
|
(1) | ||||||||
export 声明
|
(2) | ||||||||
export { 声明序列(可选) }
|
(3) | ||||||||
export (可选) import 模块名 属性说明符序列(可选) ;
|
(4) | ||||||||
export (可选) import 模块分区 属性说明符序列(可选) ;
|
(5) | ||||||||
export (可选) import 头文件名 属性说明符序列(可选) ;
|
(6) | ||||||||
module ;
|
(7) | ||||||||
module : private ;
|
(8) | ||||||||
1) module声明。声明当前翻译单元是一个“模块单元”。
2,3) export声明。导出全部命名空间域内的声明到declaration或declaration-seq中。
4,5,6) import声明。导入一个模块单元或模块分区或头文件单元。
7) 开始一个“全局模块片段”。
8) 开始一个“私有模块片段”。
本节未完成 |