Komiti Paerewa ISO C++ paerewa ā-ao""Ko ngā āheinga i whakaaturia i roto i te whakatakotoranga, haunga ngā take takitahi, i roto i ngā kaiwhakaemi , и Kua whakatinanahia ngā whare pukapuka paerewa e tautoko ana i te C++20 i roto i te kaupapa. .
I roto i ngā marama e rua e whai ake nei, ka whai wāhi te whakatakotoranga kua whakaaetia ki tētahi wāhanga whakarite tuhinga, ā, i taua wā ka mahia ngā mahi whakatika hei whakatika i ngā hapa tuhituhi me ngā hapa tuhituhi. I te tīmatanga o Noema, ka tukuna te putanga whakamutunga o te tuhinga ki te ISO hei whakaputanga i raro i te ingoa whaimana ISO/IEC 14882:2020. I taua wā tonu, kua tīmata kē te komiti ki te mahi i te paerewa C++23 e whai ake nei (C++2b) ā, ka whakaarohia ngā whakapainga pea i tana hui mariko e whai ake nei. .
():
- Kua tāpirihia ngā ariā, arā, ngā toronga tauira e āhei ai koe ki te tautuhi i tētahi huinga whakaritenga mō ngā tawhā tauira, e herea ana i te huinga tautohe ka taea te whakaae hei tawhā tauira i te wā whakahiato. Ka taea te whakamahi i ngā ariā hei karo i ngā taupatupatu arorau i waenga i ngā āhuatanga o ngā momo raraunga e whakamahia ana i roto i tētahi tauira me ngā āhuatanga o ngā momo raraunga o ngā tawhā whakauru.
tauira
ariā TauriteWhakataurite = me(T a, T b) {
{ a == b } -> std::puorean;
{ a != b } -> std::puorean;
}; - I whakaaetia ngā mea e whai ake nei ki te hanganga: Mō te mahi me ngā kōwae, ka taea te whakamahi hei utu mō ngā kōnae pane. Ka whakaratohia e ngā kōwae he huarahi hou ki te whakarite i te waehere pūtake i runga i ngā rohe wāhanga, me te kore e hiahiatia kia whakaurua ngā kōnae pane mā te "#include."
- Macro __VA_OPT__ mō te whakawhanui urutau o ngā macro variadic i runga i te aroaro o ngā tohu i roto i te tautohe variadic.
- Tautoko mō te kaiwhakahaere " " mō te whakatairite-toru.
- Tautoko mō ngā kaiwhakaara mema taunoa mō ngā āpure moka.
- Te āheinga o te hopu lambda i ngā kīanga "*tēnei".
uara_hanganga {
int n = 0;
te tiki aunoa_fn() {
// KINO:
// whakahoki [=]() { whakahoki n; };// PAI:
whakahokia [=, *tēnei]() { whakahokia n; };
}
}; - Te urunga atu ki te tohu-ki-te-mema mā te whakamahi i ngā tohu ki ngā mea rangitahi kua tautuhia mā te kīanga "const &".
- Ko te kaiwhakahaere muku me te kaiwhakangaro kua whakaahuatia i roto i te tuhinga .
- Ka whakaaetia ngā akomanga ki te whakamahi i ngā tawhā tauira me te kore he momo.
hanganga foo {
foo() = taunoa;
constexpr foo(int) {}
};tauira
tiki_foo aunoa() {
whakahokia te f;
}get_foo(); // e whakamahi ana i te kaihanga huna
tiki_foo (); - Ngā kīanga lambda kore-pūmau me te kaihanga.
- Te whakaaetia o te wetereo tauira mō ngā kīanga lambda (auto f = [] (std::vector v)»).
- Te kaha ki te whakamahi i ngā kupu whakarite aho i roto i ngā tawhā tauira.
- Tautoko mō te wetereo tīmatanga momo-C - ko ngā āpure kāore i te rārangihia i te rārangi tīmatanga ka tīmatahia ā-taunoa.
hanganga A {
roto x;
roto y;
int z = 123;
};A a {.x = 1, .z = 2}; // ax == 1, ay == 0, az == 2
- Tautoko mō ngā mema kau o ngā hanganga raraunga.
- Tautoko mō ngā huanga tūpono me ngā huanga kāore i te tūpono hei whakamōhio i te kaiwhakaarotau mō te tūponotanga o te whakaoho i tētahi hanganga herenga ('[[likely]] if (random > 0) {').
- Te kaha ki te whakamahi i ngā awhe hei tīmatanga i ngā uara taurangi i roto i te koropiko mō
mō (aunoa v = std::vector{1, 2, 3}; aunoa& e : v) {
- Tātaitanga aunoa o te rahi o te rarangi i roto i te new("new double[]{1,2,3}");
- Mā te huanga "[[no_unique_address]]" ka kore e noho nui ngā taurangi kāore he raraunga.
- Ngā tohu atomika (std::atomic > me te std::atomic >).
- Te āheinga ki te karanga i ngā mahi mariko i roto i ngā kīanga ā-whaiaro.
- Tautoko mō ngā mahi tonu ka taea anake te mahi me ngā pūmau.
te uara tawhito int sqr(int n) {
whakahokia mai n * n;
}constexpr int r = sqr(100); // ĀE
int x = 100;
int r2 = sqr(x); // HAPA: Kāore e taea te whakamahi i te 'x' hei pūmau - Te āheinga ki te whakamahi i te constexpr me ngā mahi mariko ("constexpr virtual int f() const { return 2; }").
- I roto i te whare pukapuka paerewa:
- Kua tāpirihia te tautoko mō te momo char8_t mō ngā aho UTF-8.
- Kua tāpirihia ngā kōnae moka (ngā mahi moka) me te pane putanga.
- Ka taea inaianei te tirotiro i te kupumatua me te kupu whakamutunga o ngā aho (tīmata_ki, mutu_ki).
- Kua tāpirihia ngā āhuatanga std::remove_cvref, std::unwrap_reference, std::unwrap_decay_ref, std::is_nothrow_convertible me std::type_identity.
- Kua tāpirihia ngā mahi std::midpoint, std::lerp, std::bind_front, std::source_location, std::visit, std::is_constant_evaluated me std::assume_aligned.
- Kua tāpirihia te tautoko mō ngā rarangi ki te std::make_shared.
- Kua tāpirihia te mahi std::to_array hei huri i ngā mea rite ki te array ki te std::array.
- He tikanga whakamahi māmā ake mō ngā tataunga:
akomanga enum rgba_color_channel { whero, kakariki, kikorangi, ārepa };
std::tiro_aho_ki_aho_(rgba_tae_hongere_taku_hongere) {
whakawhiti (taku_hongere) {
te whakamahi i te enum rgba_color_channel;
pū whero: whakahokia "whero";
kākāriki: whakahokia "kākāriki";
kikorangi: whakahokia "kikorangi";
pūāhua ārepa: whakahokia "ārepa";
}
} - Nā te whanonga kāore i tautuhia, kāore e whakaaetia te whakamahi i te kaiwhakahaere "," ("a[b,c]") i roto i ngā taupū. Kua mutu te tautoko mō te nuinga o ngā mahi i runga i ngā taurangi i whakapuakina me te kupumatua volatile, tae atu ki ngā kaiwhakahaere "++" me "—" i runga i ngā momo paerewa.
- I whakaitihia te maha o ngā āhuatanga e hiahiatia ai te whakatakotoranga "ingoa momo" hei tohu i te aroaro o tētahi momo.
Source: opennet.ru
