展开查看详情
1. 2018 中国C++大会 — PURECPP.ORG C++ MODULES HSAE - Wuhan · 张轶 · github.com/mutouyun
2. 2018 中国C++大会 — PURECPP.ORG 2012 2016 2018 N3347 P0142 N4720 P0947/P0986 P1103/P1156/P1180 Modules in C++ (v6) A Module System for C++ Module TS Another take on Modules Merging Modules (v4) (Atom) 2014 2017 N4047 N4637 - N4681 ISO/IEC 14882:2017 A Module System for C++ Working Draft, Extensions Programming languages -- to C++ for Modules C++
3. 2018 中国C++大会 — PURECPP.ORG WHY MODULE
4. 2018 中国C++大会 — PURECPP.ORG HEADERS • 脆弱的文本展开 • 内部细节的意外导出 • 大量的重复处理(N x M) ……
5. 2018 中国C++大会 — PURECPP.ORG HELLO WORLD
6. 2018 中国C++大会 — PURECPP.ORG 头文件展开 <ios> <iostream> <streambuf> <istream> <ostream> main.cpp <iosfwd> ……
7. 2018 中国C++大会 — PURECPP.ORG HELLO WORLD
8. 2018 中国C++大会 — PURECPP.ORG <WINDOWS.H>
9. 2018 中国C++大会 — PURECPP.ORG ODR(ONE DEFINITION RULE) main.cpp: Same? func.cpp:
10. 2018 中国C++大会 — PURECPP.ORG HEADER => MODULE
11. 2018 中国C++大会 — PURECPP.ORG HEADER => MODULE std.io main.cpp
12. 2018 中国C++大会 — PURECPP.ORG WORLD WITH HEADER t.hpp Translation Unit (TU) main.cpp a.h a.cpp TUs b.h b.cpp
13. 2018 中国C++大会 — PURECPP.ORG WORLD WITH HEADER a.h impl_1.h impl_1.cpp main.cpp impl_2.h impl_2.cpp impl_3.h impl_3.cpp
14. 2018 中国C++大会 — PURECPP.ORG WORLD WITH MODULE Binary Module Interface T-bmi t.mpp main.cpp A-bmi a.mpp TUs B-bmi b.mpp
15. 2018 中国C++大会 — PURECPP.ORG WORLD WITH MODULE Module A impl_1.cpp main.cpp A-bmi impl_2.cpp a.mpp impl_3.cpp
16. 2018 中国C++大会 — PURECPP.ORG MODULES • 为编译单元(Translation Unit)提供二进制符号信息 • ODR(One Definition Rule) • 基于依赖关系(Dependency Graph)的构建 • 避免大量的重复解析-编译过程 ……
17. 2018 中国C++大会 — PURECPP.ORG PERFORMANCE TU Increasing 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1 2 3 4 5 6 7 8 9 10 Header Module
18. 2018 中国C++大会 — PURECPP.ORG PERFORMANCE Headers/Modules x TUs 10 9 8 7 6 5 4 3 2 1 0 2x2 4x4 6x6 8x8 10 x 10 Header Module
19.2018 中国C++大会 — PURECPP.ORG
20. 2018 中国C++大会 — PURECPP.ORG HOW TO USE
21. 2018 中国C++大会 — PURECPP.ORG SAY HELLO main.cpp:
22. 2018 中国C++大会 — PURECPP.ORG SAY HELLO main.cpp:
23. 2018 中国C++大会 — PURECPP.ORG 自定义MODULE module interface unit hello.mpp: main.cpp:
24. 2018 中国C++大会 — PURECPP.ORG 自定义MODULE hello.mpp: main.cpp:
25. 2018 中国C++大会 — PURECPP.ORG 自定义MODULE hello.mpp: main.cpp:
26. 2018 中国C++大会 — PURECPP.ORG MODULE LINKAGE hello.mpp:
27. 2018 中国C++大会 — PURECPP.ORG MODULE LINKAGE hello.mpp:
28. 2018 中国C++大会 — PURECPP.ORG MODULE LINKAGE module implementation unit hello_impl.cpp: main.cpp:
29. 2018 中国C++大会 — PURECPP.ORG MODULE LINKAGE hello.mpp: 修改这里会……?