ISO C++ keele standardimise komitee heaks kiidetud rahvusvaheline standard"C ++ 20". Spetsifikatsioonis esitatud võimalused, välja arvatud üksikjuhud, toetatud koostajates GCC, Klähvima и Microsoft Visual C ++. Projekti raames rakendatakse C++20 toetavaid standardteeke Tõstmine.
Järgmise kahe kuu jooksul on kinnitatud spetsifikatsioon dokumendi avaldamiseks ettevalmistamise staadiumis, mille käigus tegeletakse kirja- ja kirjavigade toimetusliku parandamisega. Novembri alguses saadetakse saadud dokument avaldamiseks ISO-le ametliku nimetuse ISO/IEC 14882:2020 all. Vahepeal on komisjon juba alustanud tööd järgmise C++23 standardiga (C++2b) ja kaalub võimalikke valikuid järgmisel virtuaalsel koosolekul. uuendused.
Lisatud "kontseptsioonid", mallilaiendid, mis võimaldavad teil määratleda malli parameetrite nõuete komplekti, mis kompileerimise ajal piiravad argumentide kogumit, mida saab malli parameetritena aktsepteerida. Mõisteid saab kasutada malli sees kasutatavate andmetüüpide omaduste ja sisendparameetrite andmetüübi omaduste vahel loogiliste vastuolude vältimiseks.
malli
mõiste VõrdlusVõrdlus = nõuab(T a, T b) {
{ a == b } -> std::tõve;
{ a != b } -> std::tõve;
};
Vastu võetud laienemine moodulitega töötamiseks, mida saab kasutada päisefailide asemel. Moodulid pakuvad uut viisi lähtekoodi korraldamiseks, mis põhineb komponentide piiride määratlemisel, ilma päisefaile kaasamata “#include” kaudu.
Makro __VA_OPT__ muutuja makrode adaptiivseks laiendamiseks sõltuvalt muutuja argumendis olevate märkide olemasolust.
Operaatori "" tugi kolmesuunaliseks võrdluseks.
Tugi bitiväljade elementide vaikeinitsialiseerijatele.
Võimalus lambda jäädvustada "*see" väljendeid.
struct int_value {
int n = 0;
auto getter_fn() {
//HAB:
// return [=]() { return n; };
// HEA:
return [=, *see]() { return n; };
}
};
Elementide kutsumine kursori abil (pointer-to-member), kasutades viiteid ajutistele objektidele, mis on määratletud avaldise “const &” kaudu.
Kustutusoperaator koos dokumendis kirjeldatud hävitajaga P0722R1.
Klassidel on lubatud kasutada malli parameetreid ilma tüübita.
Indeksites on määratlemata käitumise tõttu operatsiooni “,” (“a[b,c]”) kasutamine keelatud. Enamiku lenduva märksõnaga deklareeritud muutujatega toimingute tugi on lõpetatud, sealhulgas standardtüüpidega operatsioonide "++" ja "-" toetamine.
Vähendas olukordade arvu, kus tüübi olemasolu näitamiseks on nõutav "tüübinimi".