Skip to content

Commit de322fd

Browse files
committed
update
1 parent 247f863 commit de322fd

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

README.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ int main() {
2929
- 1.3 [私有表示 - `_`后缀](./README.md#13-私有表示---_后缀)
3030
- 1.4 [其他](./README.md#14-其他)
3131
- 二、模块化
32-
- 2.0 [使用`import xxx`替代`#include <xxx>`](./README.md#0使用import-xxx替代include-xxx)
33-
- 2.1 [模块文件结构](./README.md#1模块文件结构)
34-
- 2.2 [使用模块`.cppm`替代头文件`.h``.hpp`](./README.md#2使用模块cppm替代头文件hhpp)
35-
- 2.3 [模块实现与接口导出分离](./README.md#3模块实现与接口导出分离)
36-
- 2.4 [模块及模块分区命名规范](./README.md#4模块及模块分区命名规范)
37-
- 2.5 [多文件模块和目录](./README.md#5多文件模块和目录)
38-
- 2.6 [可导出模块分区和内部模块分区](./README.md#6可导出模块分区和内部模块分区)
39-
- 2.7 [模块化与向前兼容](./README.md#7模块化与向前兼容)
40-
- 2.8 [其他](./README.md#8其他)
32+
- 2.0 [使用`import xxx`替代`#include <xxx>`](./README.md#20使用import-xxx替代include-xxx)
33+
- 2.1 [模块文件结构](./README.md#21模块文件结构)
34+
- 2.2 [使用模块`.cppm`替代头文件`.h``.hpp`](./README.md#22使用模块cppm替代头文件hhpp)
35+
- 2.3 [模块实现与接口导出分离](./README.md#23模块实现与接口导出分离)
36+
- 2.4 [模块及模块分区命名规范](./README.md#24模块及模块分区命名规范)
37+
- 2.5 [多文件模块和目录](./README.md#25多文件模块和目录)
38+
- 2.6 [可导出模块分区和内部模块分区](./README.md#26可导出模块分区和内部模块分区)
39+
- 2.7 [模块化与向前兼容](./README.md#27模块化与向前兼容)
40+
- 2.8 [其他](./README.md#28其他)
4141
- 2.8.1 尽可能的少使用宏
4242
- 2.8.2 导出模板接口时注意全局静态成员
4343

@@ -148,7 +148,7 @@ private:
148148

149149
## 二、模块化
150150

151-
### 0.使用`import xxx`替代`#include <xxx>`
151+
### 2.0 使用`import xxx`替代`#include <xxx>`
152152

153153
**旧式`#include`写法**
154154

@@ -170,7 +170,7 @@ int main() {
170170
}
171171
```
172172

173-
### 1.模块文件结构
173+
### 2.1 模块文件结构
174174

175175
```cpp
176176
// 0.全局模块片段(可选)
@@ -198,11 +198,11 @@ export int add(int a, int b) {
198198
}
199199
```
200200
201-
### 2.使用模块`.cppm`替代头文件`.h`、`.hpp`
201+
### 2.2 使用模块`.cppm`替代头文件`.h`、`.hpp`
202202
203203
> 可以把导出接口和接口实现都放到`.cppm`文件中.
204204
205-
#### 2.1 传统代码文件风格
205+
#### 2.2.1 传统代码文件风格
206206
207207
**传统风格1 - `.cpp` + `.h`**
208208
@@ -239,7 +239,7 @@ int add(int a, int b) {
239239
#endif
240240
```
241241

242-
#### 2.2 模块化文件
242+
#### 2.2.2 模块化文件
243243

244244
> 模块中的接口, 默认外界是不能使用的.要导出的接口需要在前面加`export`关键字
245245
@@ -272,7 +272,7 @@ export int add(int a, int b) {
272272
}
273273
```
274274

275-
### 3.模块实现与接口导出分离
275+
### 2.3 模块实现与接口导出分离
276276

277277
> 通过命名空间隔离模块实现和接口导出, 可以有选择的控制导出接口
278278
@@ -300,7 +300,7 @@ export namespace mcpplibs {
300300
};
301301
```
302302
303-
### 4.模块及模块分区命名规范
303+
### 2.4 模块及模块分区命名规范
304304
305305
> 使用文件(及目录)名 + `.`层级分割符进行模块命名, 降低同名模块冲突概率
306306
@@ -349,15 +349,15 @@ int main() {
349349
}
350350
```
351351

352-
### 5.多文件模块和目录
352+
### 2.5 多文件模块和目录
353353

354354
> 当一个模块内容太多, 需要进一步分文件时可以采用 `目录` + `模块或模块分区组合`的方式进行实现
355355

356356
- 一个文件夹 + 一个模块声明文件
357357
- 文件夹: 同一模块的实现分散到不同文件实现
358358
- 模块文件: 对外接口导出的汇总文件
359359

360-
#### 5.1 项目结构
360+
#### 2.5.1 项目结构
361361

362362
```cpp
363363
.
@@ -375,7 +375,7 @@ int main() {
375375
3 directories, 7 files
376376
```
377377

378-
#### 5.2 模块
378+
#### 2.5.2 模块
379379

380380
**`a.b`模块**
381381

@@ -424,11 +424,11 @@ export namespace a {
424424
}
425425
```
426426
427-
### 6.可导出模块分区和内部模块分区
427+
### 2.6 可导出模块分区和内部模块分区
428428
429429
> 当一个模块有多个分区时, 分可导出的分区已经仅内部使用的部分
430430
431-
#### 6.1 分区实现
431+
#### 2.6.1 分区实现
432432
433433
**`a.a2`可导出模块分区**
434434
@@ -453,7 +453,7 @@ module a:a1;
453453
void test() { } // ok
454454
```
455455
456-
#### 6.2 使用分区
456+
#### 2.6.2 使用分区
457457
458458
```cpp
459459
export module a;
@@ -463,7 +463,7 @@ export import :a2; // 使用可导出分区要加export
463463
import :a1; // 使用内部分区不能加export且只能模块内部使用
464464
```
465465

466-
### 7.模块化与向前兼容
466+
### 2.7 模块化与向前兼容
467467

468468
> C/C++以有生态中没有模块化的库, 可以把项目所有引入的传统头文件库封装到一个专门的"兼容模块中", 然后在该模块中把接口进行"重新导出", 来最小化 `全局模块/传统头文件` 的使用范围
469469
@@ -496,7 +496,7 @@ export namespace lua {
496496
}
497497
```
498498
499-
### 8.其他
499+
### 2.8 其他
500500
501501
>...
502502

0 commit comments

Comments
 (0)