Estimated completion by 3892 is cute, but not surprising really given that only 1/4 compilers and 1/3 stdlibs support these completely. Presumably most projects aren't going to try to migrate until it's more generally available (I haven't looked at them in years, not sure if it's easy or possible to support it for one toolchain but not another).
Are We Modules Yet?
21–30 of 94 posts
Re: Are We Modules Yet?
#22Re: Are We Modules Yet?
#23for the wizards where would be a good place to start for someone who did a python bootcamp but wants to learn C++ and contribute to some of these?
Re: Are We Modules Yet?
#24This website scrapes vcpkg's registry[1], which contains many C libraries which are unlikely to ever receive C++20 module updates. Many are primarily binary executable packages, like lunarg-vulkantools. It is quite unfair to judge C++ module support by this. There are even bugs in the table: the issue tracking Vulkan-Hpp module links to https://github.com/KhronosGroup/Vulkan-Hpp/issues/121, but it was actually implemented in https://github.com/KhronosGroup/Vulkan-Hpp/issues/1580 (full disclosure: I implemented it).
Boost maintainers have picked up on this[2], which is big.
The big 3 compilers have had a myriad of bugs, ICEs, and redefinition errors, despite what is claimed on cppreference[3]. VS 2022 17.10 will only just fix some of these, and G++'s module support isn't even released yet. Clang 18 has seemingly full(er) support for C++20 modules, but clangd is broken, and it seems mixing standard library headers and `import std` might still break, as will header units (`import `).
CMake released C++20 modules support with 3.28, and will release `import std` support with 3.30.
This is painful but IMO worth the paper cuts that the bleeding-edge adopters will experience in the next year or so as modules are implemented.
I fully believe that a good one-third to half of build time and power consumption in the past 40+ years of compiling C and C++ code (considerably more so in the case of template-heavy C++ header-only libraries and projects) has gone to parsing and re-parsing headers and the resultant output.
Headers are a distinctly 1970s approach to compartmentalisation. Other languages have sorted dependency and library/import resolution years ago; there's no reason the C and C++ world has to be stuck with essentially copy-pasting code over and over. The embarrassingly parallel building that results from headers is fake; it takes more time and more energy than strictly necessary.
[1]: https://vcpkg.link/browse/all
Re: Are We Modules Yet?
#25As a longtime C++ user, I'd sooner just upgrade to a better system programming language. C++ is a weird mess.
Which one would you recommend? My ideal C++ alternative would be something like Swift but faster.
Re: Are We Modules Yet?
#26Re: Are We Modules Yet?
#27As a longtime C++ user, I'd sooner just upgrade to a better system programming language. C++ is a weird mess.
Which one would you recommend? My ideal C++ alternative would be something like Swift but faster.
For compiled garbage-collected applications (web/cli): Go.
For high-level applications (web/cli/etl/desktop): Java, C#.
Also here is good writeup: https://hackernoon.com/the-real-c-killers-not-you-rust
discussed here two times:
Re: Are We Modules Yet?
#28I feel that the site would benefit from a paragraph or two about what C++ Modules are and why devs should use them
This is C++es way of finally getting rid of them, akin to Swift or Rust.
Re: Are We Modules Yet?
#29Wonder why it seems like all QT5 are "no help wanted"...
Re: Are We Modules Yet?
#30Who all are doing the `arewe yet` Web sites, other than Rust and this C++ one?
Here is my, uh, “favorite” https://arewereorganizedyet.com/