Supernova Expert
Master the cutting edge. Concepts, ranges, coroutines in C++20, and C++23/26 features.
Concepts (C++20 Addition)
Define constraints on template parameters, improving type checking and error mes...
Constraints and Requires Clauses (C++20 Addition)
Specify requirements for template parameters using `requires` clauses....
Constrained Templates (C++20 Addition)
Use concepts directly in template declarations for concise constraints....
Abbreviated Function Templates (C++20 Addition)
Use `auto` in function templates for simpler syntax....
Three-Way Comparison Operator (Spaceship Operator, <=>) (C++20 Addition)
Single operator for comparing objects, returning `std::strong_ordering` or simil...
std::strong_ordering (C++20 Addition)
Comparison result type for strict total order (e.g., integers)....
std::weak_ordering (C++20 Addition)
Comparison result type for weak ordering (e.g., case-insensitive strings)....
std::partial_ordering (C++20 Addition)
Comparison result type for partial ordering (e.g., floating-point with NaN)....
Lambda Improvements (C++20 Evolution)
Lambdas support `constexpr`, explicit template parameters, and capture of `this`...
Stateless Lambda Call Operator as consteval (C++20 Addition)
Stateless lambdas can have `consteval` call operators for compile-time execution...
Lambda Capture of [this] by Value (C++20 Evolution)
Lambdas can capture `this` by value, copying the object....
Template Lambdas (C++20 Addition)
Lambdas with explicit template parameters for generic programming....
Constexpr Improvements (C++20 Evolution)
`constexpr` supports virtual functions, dynamic memory, and STL types like `std:...
Constexpr Virtual Functions (C++20 Addition)
Virtual functions can be `constexpr`, enabling compile-time polymorphism....
Constexpr Dynamic Memory Allocation (C++20 Addition)
`new` and `delete` can be used in `constexpr` contexts for dynamic allocation....
Constexpr std::string (C++20 Evolution)
`std::string` supports `constexpr` operations for compile-time string manipulati...
Constexpr std::vector (C++20 Evolution)
`std::vector` supports `constexpr` operations for compile-time container manipul...
Immediate Functions (consteval) (C++20 Addition)
Functions guaranteed to evaluate at compile time....
Constant Evaluation for Non-Type Template Parameters (C++20 Addition)
Non-type template parameters can be evaluated at compile time with `constexpr`....
std::is_constant_evaluated (C++20 Addition)
Checks if code is evaluated in a `constexpr` context....
Modules (C++20 Addition)
Replace headers with modules for faster compilation and better encapsulation....
Import/Export Declarations (C++20 Addition)
`import` and `export` manage module dependencies and interfaces....
Coroutines (C++20 Addition)
Functions that can suspend and resume execution, enabling asynchronous programmi...
std::source_location (C++20 Addition)
Provides compile-time information about the source code (e.g., file, line)....
Designated Initializers (C++20 Addition)
Initialize struct members by name, improving readability....