Compilers
| Compiler | C++20 Modules | Info |
|---|---|---|
| MSVC 2022 | ✅ (17.6) | |
| Clang | ✅ (22) | |
| Apple Clang | ❌ | |
| GCC | ✅ (15) |
Standard Libraries
| Standard Library | Provides import std; | Info |
|---|---|---|
| MSSTL | ✅ (17.10) | |
| libc++ | ✅ (18) | |
| libstdc++ | ✅ (15) |
Build Tools
| Tool | C++20 Modules | import std; | Header Units | Info |
|---|---|---|---|---|
| Ninja | ✅ 1.11 | ✅ 1.11 | ❌ | |
| MSBuild | ✅ | ✅ | ❌ | |
| CMake | ✅ 3.28 | ✅ 3.30 | ❌ | Issue Link |
| XMake | ✅ | ✅ | ✅ | Release |
| Zork++ | ✅ | ✅ | ❌ | Project |
| Build2 | ✅ | ✅ 0.17.0 | ❌ | Issue Link |
| qbs | ✅ 2.5 | ✅ 3.1 | ❌ | Tutorial |
| Meson | Partial | ❌ | ❌ | Issue Link |
| Gnu Make | ✅ | ❌ | ❌ | Demo Project |
| Cabin | ❌ | ❌ | ❌ | |
| HMake | ✅ | ✅ | ✅ | |
| GNU Autotools | ❌ | ❌ | ❌ | |
| Scons | ⚙️ | ❌ | ❌ | PR for GCC support |
| ccache | ⚙️ | ❌ | ❌ | PR |
| sccache | ⚙️ | ❌ | ❌ | PR (clang) |
| Bazel | ✅ | ⚙️ | ❌ | Issue Link |
| Gradle | ❌ | ❌ | ❌ | Issue Link |
| fastbuild | ❌ | ❌ | ❌ | Issue Link |
| qmake | ❌ | ❌ | ❌ | 💀 Deprecated and should no longer be used! |
Language Server (IDE Support)
| Tool | C++20 Modules | Info |
|---|---|---|
| Clangd | ✅ | C++20 Modules in clangd |
| vscode-cmake-tools | ❌ | Issue Link |
Preprocessor
| Tool | C++20 Modules | Info |
|---|---|---|
| Qt moc | ❌ | Qt needs to add modules support to their preprocessor before they can even begin adding modules support. The last conversation happened mid December 2023 here. fabiankosmale laid out the challenges for this, but no timeline was given for when it will be done. Link |