-
Notifications
You must be signed in to change notification settings - Fork 28
Knowledgebase Programming: Compiler C feature support
oktal3700 edited this page Oct 31, 2023
·
4 revisions
C++17 feature | VS 2022 17.7; cl.exe 19.37.32825 | Ubuntu 20.04 GCC 9.3 | Xcode 13.2; clang 13.0 (LLVM 12) |
---|---|---|---|
Nested namespace definition | ✔ | ✔ | ✔ |
Fold expressions | ✔ | ✔ | ✔ |
Pack expansion in using
|
✔ | ✔ | ✔ |
Lambda capture *this
|
✔ | ✔ | ✔ |
constexpr lambdas |
✔ | ✔ | ✔ |
Range for heterogeneous iterators |
✔ | ✔ | ✔ |
fallthrough attribute |
✔ | ✔ | ✔ |
if constexpr |
✔ | ✔ | ✔ |
if -init and switch -init |
✔ | ✔ | ✔ |
Structured bindings | ✔ | ✔ | ✔ |
Class template argument deduction | ✔ | ✔ | ✔ |
Inline variables | ✔ | ✔ | ✔ |
auto non-type template parameters |
✔ | ✔ | ✔ |
Guaranteed copy elision | ✔ | ✔ | ✔ |
std::void_t |
✔ | ✔ | ✔ |
std::bool_constant |
✔ | ✔ | ✔ |
std::string_view |
✔ | ✔ | ✔ |
std::optional |
✔ | ✔ | ✔ |
std::variant |
✔ | ✔ | ✔ |
std::any |
✔ | ✔ | ✔ |
std::invoke |
✔ | ✔ | ✔ |
std::as_const |
✔ | ✔ | ✔ |
Traits _v alias variables |
✔ | ✔ | ✔ |
C++20 feature | VS 2022 17.7; cl.exe 19.37.32825 | Ubuntu 20.04 GCC 9.3 | Xcode 13.2; clang 13.0 (LLVM 12) |
---|---|---|---|
NTTP of class type | ✔ | ✔ | ½ |
Concepts | ✔ | ½ | |
Modules | ✔ | ½ | |
Coroutines | ✔ | ½ | |
consteval |
✔ | ½ | |
constinit |
✔ | ✔ | |
constexpr containers |
✔ | ||
constexpr algorithms |
✔ | ✔ | |
constexpr std::invoke |
✔ | ✔ | |
Lambdas in unevaluated contexts | ✔ | ✔ | |
Default-ctor stateless lambdas | ✔ | ✔ | ✔ |
Pack expansion in init-capture | ✔ | ✔ | ✔ |
<=> |
✔ | ✔ | ✔ |
using enum |
✔ | ||
CTAD for aggregates | ✔ | ||
More implicit move in return
|
✔ | ||
Atomic std::shared_ptr
|
✔ | ||
std::remove_cvref |
✔ | ✔ | ✔ |
std::bind_front |
✔ | ✔ | |
std::erase |
✔ | ½ | ✔ |
std::lerp |
✔ | ✔ | ✔ |
- Home
- API documentation (Doxygen generated)
- Future of swift
- Style and Coding Standard
- Build swift
- Run swift as a developer
- Knowledgebase
- External resources
- Open Research Questions
- Aviation
- Programming
- Simulation
- Architecture