Why is there still such poor compiler support for C++ Modules?

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • STL

    MSVC's implementation of the C++ Standard Library.

    Look at microsoft/STL#1694 for the list of MSVC compiler bugs that the STL has encountered while trying to get modules ready for use (these have all been fixed by Cameron and Gaby, I just find, reduce, and report them). And this is just a fraction of all the work that's happened so far - there are many more scenarios beyond what the STL exercises (and with named modules, which is the step beyond header units). There's even more work happening for the EDG front-end powering IntelliSense, and when Clang starts supporting C++20 standard modules, we'll have to test them with MSVC's STL and report even more issues (MSVC and Clang are our first-class supported codegen compilers, so we'll implement library features with whatever compiler is ready first, then test the other as it comes online).

  • AStarDemo

    Discontinued A basic A* example ported to C++/WinRT

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • C++ Format

    A modern formatting library

    If you find something which does not work in modules please, please, please report it to your compiler vendor. I have personally been trying to knock out as many feedback bugs against MSVC as I can for each release and the compiler has been getting noticeably better for it. If you have a project which uses modules and is blocked somehow, send me a github link and I can build it and tease compiler bugs out. One great success story here is how we worked with /u/Daniela-E to get fmtlib built as a module interface: https://github.com/fmtlib/fmt/pull/2240.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts