Guddiga ISO ee Habaynta Luuqadda C++ ansixiyay heerka caalamiga ah"C ++ 20" Awoodaha lagu soo bandhigay qeexitaanka, marka laga reebo kiisaska go'doonsan, taageeray in compilers GCC, Calaacal ΠΈ Microsoft Visual C ++. Maktabadaha caadiga ah ee taageeraya C++20 ayaa laga hirgeliyay mashruuca dhexdiisa Yididiilo.
Labada bilood ee soo socota, qeexitaanka la ansixiyay wuxuu noqon doonaa heerka diyaarinta dukumeentiga daabacaadda, kaas oo lagu fulin doono shaqada sixitaannada khaladaadka higaada iyo daabacaadda. Horaanta Noofembar, dukumeentiga ka soo baxa waxaa loo diri doonaa ISO si loogu daabaco magaca rasmiga ah ISO/IEC 14882:2020. Dhanka kale, guddiga ayaa durba bilaabay shaqada heerka C++23 ee soo socda (C++2b) waxayna ka fiirsan doonaan xulashooyinka suurtagalka ah kulankooda xiga ee farsamada. wax cusub.
Lagu daray "fikrado", kordhinta template, taas oo kuu ogolaanaysa inaad qeexdo shuruudaha halbeegyada template kuwaas, marka la ururiyo wakhtiga, xaddidaya xujooyinka doodaha ee loo aqbali karo cabbirrada template. Fikradaha waxaa loo isticmaali karaa si looga fogaado is-waafajinta macquulka ah ee udhaxeysa sifooyinka noocyada xogta ee lagu isticmaalo template-ka iyo nooca xogta ee xuduudaha gelinta.
qaab-dhismeedka
fikradda EqualityComparable = waxay u baahan tahay (T a, T b) {
{a == b} -> std :: boolean;
{a != b } -> std:: boolean;
};
Waa la aqbalay fidinta si loogu shaqeeyo modules loo isticmaali karo halkii laga isticmaali lahaa faylalka madaxa. Modules waxay bixiyaan hab cusub oo lagu abaabulo koodka isha ku salaysan qeexidda xuduudaha qaybaha, iyada oo aan lagu darin faylalka madaxa iyada oo loo marayo "#include".
Macro __VA_OPT__ loogu talagalay balaadhinta la qabsiga ee macros doorsooma iyadoo ku xidhan joogitaanka calaamadaha ku jira dooda doorsoomiyaha.
Awoodda isticmaalka xargaha xargaha ee cabbirrada template.
Taageerada habaynta C-style syntax - meelaha aan si cad ugu taxan liiska bilowga waxa lagu bilaabay si toos ah.
qaabka A {
intx;
int y;
int z = 123;
};
A a {.x = 1, .z = 2}; // ax == 1, ay == 0, az == 2
Taageerada xubnaha qaab dhismeedka xogta madhan.
Taageerada sifooyinka suurtagalka ah iyo kuwa aan suurtogalka ahayn si loogu wargaliyo hagaajinta ixtimaalka dhismaha shuruudaysan ee la kiciyay ("[[laga yaabo]] haddii ( random > 0) {").
Awoodda isticmaalka kala duwanaanta si loo bilaabo qiyamka doorsooma ee loop "for"
loogu talagalay (auto v = std :: vector {1, 2, 3}; auto& e : v) {
Xisaabinta tooska ah ee cabbirka qaabka cusub ("laba laab cusub[]{1,2,3}");
Sifada "[[no_unique_address]]" taas oo doorsoomayaal aan xog lahayn aysan qaadan meel bannaan.
Taageero lagu daray arrays std:: make_la wadaagay.
Lagu darey std :: shaqada_array si loogu badalo shayada array u eg std:: array.
Tiro-koob aad u habboon:
enum class rgba_color_channel {cas, cagaar, buluug, alfa};
std :: string_view to_string(rgba_color_channel my_channel) {
beddel (my_channel) {
isticmaalaya enum rgba_color_channel;
kiis cas: soo celi "cas";
kiis cagaaran: soo celi "cagaaran";
kiis buluug ah: soo celi "buluug";
kiis alfa: soo celi "alfa";
}
}
Tusmooyinka, dabeecadda aan la qeexin awgeed, isticmaalka qalliinka "," ("a[b,c]") waa mamnuuc. Taageerada inta badan hawlgallada doorsoomayaasha lagu dhawaaqay ee leh kelmadda muhiimka ah ee kacsan waa la joojiyay, oo ay ku jiraan hawlgallada "++" iyo "-" ee leh noocyada caadiga ah.
La dhimay tirada xaaladaha taas oo "typename" looga baahan yahay si ay u muujiyaan joogitaanka nooc.