C++23
Completing Modern2023 · -std=c++23
Completed unfinished work from C++20. Added std::expected, std::print, deducing this, and more.
13Core Language
49STL Components
-std=c++23Key Features
std::expected
std::print
Deducing this
std::flat_map
Ranges improvements
std::mdspan
Core Language(13)
Range-based For Loop with Initializer (C++23 Addition)expertExplicit This Parameter in Lambdas (Deducing This) (C++23 Addition)expert[[assume]] Attribute (C++23 Addition)expertMultidimensional Array Subscript Operator (C++23 Addition)expertStatic operator() (C++23 Addition)expertStatic operator[] (C++23 Addition)expertif consteval (C++23 Addition)expertsize_t Literal Suffix (uz/zu)expert#warning Preprocessor Directiveexpert#elifdef / #elifndef Preprocessor Directivesexpertauto(x) and auto{x} Decay-Copy ExpressionsexpertConstexpr ImprovementsexpertLambda Trailing Return Type Scope Changesexpert
STL Components(49)
std::flat_map (C++23 Addition)std::flat_set (C++23 Addition)std::flat_multimap (C++23 Addition)std::flat_multiset (C++23 Addition)std::mdspan (C++23 Addition)std::generator (C++23 Addition)std::ranges::zip_view (C++23 Addition)std::ranges::zip_transform_view (C++23 Addition)std::ranges::adjacent_view (C++23 Addition)std::ranges::adjacent_transform_view (C++23 Addition)std::ranges::chunk_view (C++23 Addition)std::ranges::chunk_by_view (C++23 Addition)std::ranges::slide_view (C++23 Addition)std::ranges::stride_view (C++23 Addition)std::ranges::cartesian_product_view (C++23 Addition)std::ranges::repeat_view (C++23 Addition)std::ranges::join_with_view (C++23 Addition)std::ranges::as_rvalue_view (C++23 Addition)std::ranges::as_const_view (C++23 Addition)std::ranges::enumerate_view (C++23 Addition)std::ranges::views::zip, zip_transform, adjacent, adjacent_transform, chunk, chunk_by, slide, stride, cartesian_product (C++23 Addition)std::ranges::fold_left, fold_right, fold_left_first, fold_right_last (C++23 Addition)std::ranges::find_last, find_last_if, find_last_if_not (C++23 Addition)std::ranges::contains, starts_with, ends_with (C++23 Evolution)std::ranges::to (C++23 Addition)std::expected (C++23 Addition)std::print, std::println (C++23 Addition)std::stacktrace, std::stacktrace_entry, std::basic_stacktrace (C++23 Addition)std::to_underlying (C++23 Addition)std::byteswap (C++23 Addition)std::assume_aligned (C++23 Addition)std::unreachable (C++23 Addition)std::invoke_r (C++23 Addition)std::forward_like (C++23 Addition)std::move_only_function (C++23 Addition)std::out_ptr / std::inout_ptr (C++23 Addition)std::spanstream (C++23 Addition)std::basic_string::contains / std::basic_string_view::contains (C++23 Addition)std::string constexpr Support (C++23 Evolution)std::vector constexpr Support (C++23 Evolution)std::optional Monadic Operations (C++23 Addition)std::variant Monadic Operations (C++23 Addition)std::expected Monadic Operations (C++23 Addition)std::span subspan, as_bytes, as_writable_bytes (C++23 Evolution)std::reference_wrapper Improvements (C++23 Evolution)std::filesystem::recursive_directory_iterator Improvements (C++23 Evolution)std::chrono::parse, std::chrono::format (C++23 Addition)std::chrono::zoned_traits, std::chrono::choose, std::chrono::leap_second (C++23 Addition)import std (Standard Library Module) (C++23 Addition)