Comataidh ISO air Inbhe a’ Chànain C++ aontaichte inbhe eadar-nàiseanta"C ++ 20". Na comasan a tha air an taisbeanadh san t-sònrachadh, ach a-mhàin cùisean iomallach, taic ann an luchd-cruinneachaidh GCC, clang и Microsoft Visual C ++. Tha leabharlannan àbhaisteach a’ toirt taic do C++20 air an cur an gnìomh taobh a-staigh a’ phròiseict A BHROSNACHADH.
Anns an ath dhà mhìos, bidh an sònrachadh aontaichte aig an ìre de bhith ag ullachadh na sgrìobhainn airson fhoillseachadh, far an tèid obair a dhèanamh air ceartachadh deasachaidh mhearachdan litreachaidh agus typos. Tràth san t-Samhain, thèid an sgrìobhainn a thig às a chuir gu ISO airson fhoillseachadh fon ainm foirmeil ISO / IEC 14882: 2020. Anns an eadar-ama, tha a’ chomataidh mu thràth air tòiseachadh air obair air an ath inbhe C++23 (C++2b) agus beachdaichidh iad air roghainnean a dh’ fhaodadh a bhith ann aig an ath choinneamh bhrìgheil aca. innleachdan.
Chaidh “bun-bheachdan”, leudachadh teamplaid a chuir ris, a leigeas leat seata de riatanasan paramadair teamplaid a mhìneachadh a bhios, aig àm cruinneachaidh, a’ cuingealachadh an t-seata argamaidean a ghabhas gabhail riutha mar pharaimearan teamplaid. Faodar na bun-bheachdan a chleachdadh gus neo-chunbhalachd loidsigeach a sheachnadh eadar feartan nan seòrsaichean dàta a thathar a’ cleachdadh taobh a-staigh an teamplaid agus feartan seòrsa dàta nam paramadairean cuir a-steach.
teamplaid
bun-bheachd EqualityComparable = feum (T a, T b) {
{ a == b } -> std ::boolean;
{ a != b } -> std ::boolean;
};
Air gabhail ris leudachadh airson a bhith ag obair le modalan a ghabhas cleachdadh an àite faidhlichean cinn. Tha modalan a’ toirt seachad dòigh ùr air còd stòr a chuir air dòigh stèidhichte air crìochan phàirtean a mhìneachadh, gun a bhith a’ toirt a-steach faidhlichean cinn tro “#include”.
Macro __VA_OPT__ airson leudachadh atharrachail air macros caochlaideach a rèir làthaireachd comharran san argamaid chaochlaideach.
Taic don " "ghnìomhaiche airson coimeas trì-shlighe.
faigh_foo(); // a’ cleachdadh inneal-togail ciallach
faigh_foo ();
Abairtean lambda neo-sheasmhach le constructor.
A’ ceadachadh co-chòrdadh teamplaid airson abairtean lambda (“auto f = [] (std :: vector v)").
Comas litrichean sreang a chleachdadh ann am paramadairean teamplaid.
Taic airson co-chòrdadh tòiseachaidh stoidhle C - tha raointean nach eil air an liostadh gu soilleir air an liosta tòiseachaidh air an tòiseachadh gu bunaiteach.
structar A {
intx;
int y;
int z = 123;
};
A a {.x = 1, .z = 2}; // tuagh == 1, ay == 0, az == 2
Taic do bhuill structar dàta falamh.
Taic airson na buadhan a tha coltach agus eu-coltach gus innse don optimizer mun choltas gun tèid an togail cumhach a phiobrachadh (“[[dualtach]] ma tha (air thuaiream> 0) {“).
Comas raointean a chleachdadh gus luachan caochlaideach a thòiseachadh ann an lùb “airson”.
airson (auto v = std::vector{1, 2, 3}; auto& e : v) {
Obrachadh fèin-ghluasadach air meud rèite ann an ùr (“dùbailte ùr[]{1,2,3}”);
Am feart “[[no_unique_address]]” anns nach bi caochladairean gun dàta a’ gabhail àite.
Comharran atamach (std ::atomic > agus std ::atamach >).
Comas gnìomhan brìgheil a ghairm ann an abairtean cumhach.
Taic airson gnìomhan sa bhad nach urrainn ach obrachadh le cunbhalachd.
consteval int sqr(int n) {
tilleadh n* n ;
}
constexpr int r = sqr(100); // Ceart gu leòr
int x = 100;
int r2 = sqr(x); // MEARACHD: chan urrainn "x" a chleachdadh mar shlat-tomhais
Comasach air constexpr a chleachdadh le gnìomhan brìgheil (“constexpr virtual int f () const { tilleadh 2; } ”).
Anns an leabharlann àbhaisteach:
Taic a bharrachd airson an seòrsa char8_t airson sreangan UTF-8.
Chaidh faidhlichean cinn a chur ris (bit obrachaidhean) agus dreach.
Tha e comasach a-nis sgrùdadh a dhèanamh air ro-leasachan agus iar-leasachan nan sreangan (starts_with, ends_with).
Std air a chur ris :: remove_cvref, std :: unwrap_reference, std :: unwrap_decay_ref, std :: is_nothrow_convertible agus std :: type_identity traits.
Ann an clàran-amais, mar thoradh air giùlan neo-mhìnichte, thathas a’ toirmeasg cleachdadh na h-obrach “,” (“a[b,c]”). Chaidh stad a chuir air taic airson a’ mhòr-chuid de ghnìomhachdan le caochladairean air an ainmeachadh leis a’ phrìomh fhacal luaineach, a’ toirt a-steach gnìomhachd “++” agus “-” le seòrsachan àbhaisteach.
Lùghdaich an àireamh de shuidheachaidhean far a bheil feum air “typename” gus sealltainn gu bheil seòrsa ann.