| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
cppstat is a site that lists C and C++ features and their respective support by compilers and standard libraries, designed as a simple, quickly searchable table.
cppstat fetches data from YAML files in the root directory. The files are maintained as a best-effort and contributions are always welcome.
Simply use GitHub's web interface or fork the repo to commit your changes for approval. Another approach is to submit a ticket for any incorrect or missing information, or feature ideas.
If you are a toolchain developer, feel free to request full editorial access.
Features are declared in the features_cpp<version>.yaml files. Each standard version of C and C++ has its own file; for example, features_cpp23.yaml contains all features of C++23.
A feature has the following properties:
As a full reference example, here is the definition of P2465 at the time of writing:
- desc: 'Standard library modules (`import std`)'
paper: P2465
lib: true
support:
- GCC 15 (hint)
- Clang 17 (partial)
- Clang 19
- MSVC 14.50 (partial)
- MSVC 14.55
hints:
- target: GCC 15
msg: 'Requires enabling compiler flag `-fmodules` to enable experimental modules support.'
- target: Clang 17
msg: 'Experimental support only.'
- target: MSVC 14.50
msg: 'Modules work, but you have to manually add them to your Visual Studio project.'
ftm:
- name: __cpp_lib_modules
value: 202207LWhich will look like the following on cppstat:
Every feature can have an in-depth explanation hidden behind its info button.
The content property of a feature specifies the Markdown file that describes the feature. This file is expected to be in the content folder.
For example, the feature P2589 (static operator[]) is defined as follows:
- desc: '`static operator[]`'
...
content: static-subscript-operator.mdThis feature's explanation is therefore expected to be in content/static-subscript-operator.md.
The structure of a content file should be:
Toolchains are declared in the toolchains.yaml file.
Note that the list does not contain every possible toolchain release, but rather the toolchains that are referenced by a feature. This is mostly major and minor releases, very rarely revisions.
Each toolchain has the following properties:
MSVC has the following additional properties:
Xcode has the following additional properties:
| Back | FazBrowse Home | New Git URL |