C++26
C++26 je neformální jméno pro připravovanou verzi ISO a IEC 14882 normy programovacího jazyka C++, která následuje po C++23. Aktuální draft této verze je N4981.[1]
Vlastnosti
Mezi změny, které mají být součástí C++26, patří:
Jazyk
- Nevyhodnocované řetězce
- Přidání znaků
@,$a`k základní znakové sadě constexprzměna typu zvoid*- Uživatelsky generované zprávy
static_assert - Zástupné proměnné bez jména
- Zhuštěné indexování
- Atributy pro strukturované vazby
- Chybné chování pro neinicializovaná čtení
= delete("reason");- Variadické friend funkce
constexprumístěnínew- Deklarace strukturované vazby jako podmínka
- Řazení omezení obsahující výrazy s opakovaným použitím operátoru (anglicky fold expressions)
- Smazání ukazatele na neúplný typ musí být chyba
- Strukturované vazby mohou zavést balíček s proměnným počtem prvků (anglicky pack)[2]
- Umožnění vyhazování výjimek při vyhodnocování konstant
- strukturované
constexprvazby a odkazy naconstexprproměnné - „Vypuštění parametrů bez předchozí čárky je nedoporučované. Zápis
(int...)je nekompatibilní s jazykem C, škodlivý v C++ a snadno nahraditelný zápisem(int, ...).“[3] - Odstranění nedoporučovaných porovnání polí
Knihovna
- Podpora hašování pro hodnoty třídy
std::chrono std::is_within_lifetime- Nativní manipulátory v souborových proudech
- Rozhraní řetězcových proudů s
std::string_view - Rozhraní
std::bitsetsstd::string_view - Další
constexprv hlavičkových souborech<cmath>a<complex> - Přidání nových předpon podle SI z roku 2022 násobky:
std::quecto,std::ronto,std::ronnaastd::quetta std::copyable_functionstd::submdspan()<debugging>: podpora ladění<linalg>: volné rozhraní pro funkce lineární algebry vycházející z BLAS- Přidán protokol n-tic do
std::complex views::concat- Zřetězování řetězců a řetězcových pohledů
std::ranges::generate_random- Tisk prázdných řádků funkcí
std::println() std::formatter<std::filesystem::path>- Aritmetika se saturací, mimo jiné
std::add_satastd::div_sat
Odkazy
Reference
V tomto článku byl použit překlad textu z článku C++26 na anglické Wikipedii.
- ↑ Working Draft, Standard for Programming Language C++ [online]. Open Standards, 2024-04-16. Dostupné online.
- ↑ REVZIN, Barry; WAKELY, Jonathan. 2024-11-22 [cit. 2024-12-27]. Dostupné online.
- ↑ P3176R1: The Oxford variadic comma [online]. eisenwave.github.io [cit. 2024-12-09]. Dostupné online.