-
Notifications
You must be signed in to change notification settings - Fork 302
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[c2cpg] C++17 and C++20 features (#5210)
- Loading branch information
1 parent
bf1cda8
commit 166cfab
Showing
12 changed files
with
1,168 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Support For New Language Features | ||
|
||
- For an explanation for each feature you may want to look at https://github.com/AnthonyCalandra/modern-cpp-features/tree/master. | ||
- Table legend: | ||
- `[?]` not yet checked | ||
- `[ ]` not supported at all / can not even be parsed | ||
- `[~]` can be parsed but is not fully represented in the CPG | ||
- `[x]` full support including the CPG representation | ||
|
||
## C++17 Language Features | ||
|
||
| Feature | Supported | | ||
|-------------------------------------------------------------------------|-----------| | ||
| template argument deduction for class templates | [~] | | ||
| declaring non-type template parameters with auto | [~] | | ||
| folding expressions | [x] | | ||
| new rules for auto deduction from braced-init-list | [x] | | ||
| constexpr lambda | [~] | | ||
| lambda capture this by value | [~] | | ||
| inline variables | [x] | | ||
| nested namespaces | [x] | | ||
| structured bindings | [x] | | ||
| selection statements with initializer | [x] | | ||
| constexpr if | [x] | | ||
| utf-8 character literals | [ ] | | ||
| direct-list-initialization of enums | [x] | | ||
| \[\[fallthrough\]\], \[\[nodiscard\]\], \[\[maybe_unused\]\] attributes | [~] | | ||
| \_\_has_include | [~] | | ||
| class template argument deduction | [~] | | ||
|
||
## C++20 Language Features | ||
|
||
| Feature | Supported | | ||
|------------------------------------------------|-----------| | ||
| coroutines | [?] | | ||
| concepts | [?] | | ||
| three-way comparison | [?] | | ||
| designated initializers | [?] | | ||
| template syntax for lambdas | [?] | | ||
| range-based for loop with initializer | [?] | | ||
| \[\[likely\]\] and \[\[unlikely\]\] attributes | [?] | | ||
| deprecate implicit capture of this | [?] | | ||
| class types in non-type template parameters | [?] | | ||
| constexpr virtual functions | [?] | | ||
| explicit(bool) | [?] | | ||
| immediate functions | [?] | | ||
| using enum | [?] | | ||
| lambda capture of parameter pack | [?] | | ||
| char8_t | [?] | | ||
| constinit | [?] | | ||
| \_\_VA_OPT\_\_ | [?] | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.