| 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. You can contribute in multiple ways.
The recommended approach is cppstat's UI-based editor.
The editor provides search and a clear view of the data, Markdown preview and input validation. It can create a patch, commit, and PR automatically for you with a single click.
Alternatively, you can use GitHub's web interface and 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:
Each feature should include a sample snippet that shows how it can be used in code. The snippet helps the reader to better understand the feature and to try it out directly in the browser.
Markdown multiline code blocks are expected (triple backticks). For C++ features, a cpp block is expected; for C it's c.
Example of how it looks on cppstat:
The frontmatter of a content file can specify the following properties:
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 |