Comment by Panzerschrek
19 hours ago
How did you collect this information? Manually by checking all compilers? By writing tests? By parsing compilers documentation?
19 hours ago
How did you collect this information? Manually by checking all compilers? By writing tests? By parsing compilers documentation?
Hi, I got the initial information from the cppreference compiler support site, then verified with each compiler vendors support tables and updated the information accordingly.
Then I wrote a bot that watches all known (and most importantly, reliable) sources for changes, that then notifies me. The data itself is kept in very simple yaml files. So whenever something changes, I verify and update the info accordingly (The site itself is then regenerated and uploaded automatically).
For features that are not fully implemented yet, or where the vendor does not provide any information (e.g. Apple's conformance table), I set up a conformance test suite on my machine that runs most of these across all toolchains.
Please note that I won't be the only person that maintains this site. I'm in the process of open-sourcing and automating most of it, so that everyone can contribute via GitHub. It's just that keeping up with C++ is part of my job, and also a personal interest of mine. So I do this as a "labour of love".
Trusting that the compiler docs correspond to reality is a bit of a risk here.
I lost a bunch of my evening to gcc refusing to find glibc headers and the docs wouldn't have helped me there. I did find a wontfix bugzilla from 2020 though, so that's nice.
The alternative would be to start stoically writing test programs and gradually reinvent part of autotools. Maybe run your conformance tests on the platforms that do have docs as well. Sounds like you may already be doing that :)