Co to jest C++23?
W lutym 2023 roku ISO (Międzynarodowa Organizacja Normalizacyjna) zatwierdziła nową wersję C++, zwaną C++23.
Nowe ulepszenia w C++23
Dla Twojej ciekawości, oto lista głównych zmian, które dodaje C++23. Należy pamiętać, że ta lista nie jest wyczerpująca, ale ma raczej na celu podkreślenie niektórych kluczowych zmian.
- Constexpr <cmath> (np.
std::abs()) i <cstdlib> (6.7 -- Operatory relacyjne i zmiennoprzecinkowe porównania). - Constexpr
std::unique_ptr(jeszcze nie ma lekcji). - Jawny
thisparametr (jeszcze nie ma lekcji). - Typy zmiennoprzecinkowe o stałym rozmiarze (przez <stdfloat>) (jeszcze nie ma lekcji).
- Funkcje drukowania w formacie
std::printistd::println(jeszcze nie ma lekcji) - Dosłowne przyrostki dla
std::size_ti odpowiadający im typ znaku (5.2 -- Literały). - Wielowymiarowy indeks dolny
operator[](Wspomniane w lekcja 17.13 -- Wielowymiarowy std::array). - Wielowymiarowy zakres
std::mdspan(17.13 -- Wielowymiarowy std::array). - Dyrektywy preprocesora
#elifdefi#elifndef(jeszcze nie ma lekcji). - Dyrektywa preprocesora
#warning(jeszcze nie ma lekcji). - Biblioteka Stacktrace (jeszcze nie ma lekcji)
- Standardowe moduły biblioteczne
std(orazstd.compat) (jeszcze nie ma lekcji). - Statyczny
operator()ioperator[](jeszcze nie ma lekcji). std::bitsetteraz w pełni constexpr.std::expected(jeszcze nie ma lekcji)std::rangesalgorytmystarts_with,ends_with,contains(jeszcze nie ma lekcji)std::string::containsistd::string_view::contains(jeszcze nie ma lekcji)std::to_underlyingaby uzyskać podstawowy typ wyliczenia (13.6 -- Wyliczenia o ograniczonym zakresie (klasy wyliczeniowe)).std::unreachable()(jeszcze nie ma lekcji).- Używanie nieznanych wskaźników i referencji w wyrażeniach stałych (17.2 — std::array długość i indeksowanie).

