C ++ 23 - C++23
Revize jazyka C ++ |
---|
C ++ 23 je neformální název pro další verzi normy ISO / IEC 14882 pro programovací jazyk C ++, která by měla následovat C ++ 20 . Aktuální návrh je N4892.
V únoru 2020 byl na závěrečné schůzce C ++ 20 v Praze přijat celkový plán pro C ++ 23: plánovanými funkcemi pro C ++ 23 jsou podpora knihovny pro korutiny , standardní modulární knihovna, exekutory a vytváření sítí.
První setkání WG21 zaměřené na C ++ 23 se mělo konat ve Varně na začátku června 2020, ale bylo zrušeno kvůli pandemii COVID-19 , stejně jako setkání v listopadu 2020 v New Yorku a setkání v únoru 2021 v Koně, Havaj . Je nepravděpodobné, že by do roku 2022 proběhlo osobní setkání.
Nové vlastnosti
Při absenci osobních schůzek WG21 bylo do konceptu C ++ 23 zatím přidáno několik nových funkcí. Po virtuální schůzce WG21 dne 9. listopadu 2020, kde byly schváleny průzkumy slámy, však byly přidány následující:
- Doslovné přípony pro
std::size_t
a odpovídající podepsaný typ - Členská funkce
contains
prostd::basic_string
astd::basic_string_view
pro kontrolu, zda řetězec obsahuje daný podřetězec nebo znak - Knihovna stacktrace (
<stacktrace>
), založená na Boost .Stacktrace - Typová vlastnost
std::is_scoped_enum
- Záhlaví
<stdatomic.h>
pro interoperabilitu s C atomics
Po virtuální schůzce WG21 ze dne 22. února 2021 byly přidány následující funkce, kde byly schváleny průzkumy slámy:
- Oprava adaptérů vstupního rozsahu a
counted_iterator
. - Odebrání nepotřebného seznamu prázdných parametrů
()
z výrazů lambda . - Uvolněte požadavky na
time_point::clock
. -
std::visit
pro třídy, ze kterých jsou odvozenystd::variant
. - Zámky zámek zamykatelné.
- Podmíněně vypůjčené rozsahy.
-
std::to_underlying
.
Po virtuálním zasedání plenárního zasedání norem ISO C ++ v létě 2021 v červnu 2021 byly nové funkce a zprávy o závadách schváleny průzkumy slámy:
- Konstantní if ( ).
if consteval
- Zúžení kontextových převodů na
bool
. - Povolení duplicitních atributů.
-
std::span
-string string-stream (<spanstream>
). -
std::out_ptr()
astd::inout_ptr()
. -
constexpr
prostd::optional
,std::variant
astd::type_info::operator==
. - Iterátory spárují konstruktory pro
std::stack
( zásobník ) astd::queue
( fronta ). - Několik změn knihovny rozsahů:
- Zobecněné
starts_with
aends_with
pro libovolné rozsahy. - Přepracovaný
split_view
a novýlazy_split_view
. - Uvolnění omezení
join_view
. - Odstranění
default_initializable
omezení z konceptuview
. - Konstruktor rozsahu pro
std::basic_string_view
.
- Zobecněné
- Zákaz
std::basic_string
astd::basic_string_view
konstrukce odnullptr
. -
std::invoke_r
. - Vylepšení na
std::format
. - Přidání výchozích argumentů pro
std::pair
konstruktor pro předávání.
Odebrána funkce
- Podpora sbírání odpadků.
Reference