Hacker News

C++26: Std:Ele_le_agbenɔƒe_me

\u003ch2\u003eC++26: Std:Ele_agbenɔƒe_me\u003c/h2\u003e \u003cp\u003eNyati sia na gɔmesese veviwo kple nyatakaka tso eƒe tanya ŋu, si kpena ɖe sidzedze mama kple gɔmesese ŋu.\u003c/p\u003e \u003ch3\u003eNu vevi siwo wotsɔna yia teƒe bubuwo\u003c/h3\u003e \u003cp\u003eNuxlẽlawo c...

7 min read Via www.sandordargo.com

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003eC++26: Std:Ele_agbenɔƒe_me\u003c/h2\u003e \u003cp\u003eNyati sia na gɔmesese veviwo kple nyatakaka tso eƒe tanya ŋu, si kpena ɖe sidzedze mama kple gɔmesese ŋu.\u003c/p\u003e \u003ch3\u003eNu vevi siwo wotsɔna yia teƒe bubuwo\u003c/h3\u003e \u003cp\u003eNuxlẽlawo ateŋu akpɔ mɔ be yewoakpɔ viɖe:\u003c/p\u003e \u003cul\u003e \u003cli\u003eNya si ŋu woƒo nu tsoe gɔmesese deto\u003c/li\u003e \u003cli\u003eDɔwɔwɔ ŋutɔŋutɔ kple xexeame ŋutɔŋutɔ ƒe vevienyenye\u003c/li\u003e \u003cli\u003eEŋutinunyalawo ƒe nukpɔsusuwo kple numekuku\u003c/li\u003e \u003cli\u003eNyatakaka yeye siwo ku ɖe ŋgɔyiyi siwo le edzi yim fifia ŋu\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eAsixɔxɔ ƒe Nyagbɔgblɔ\u003c/h3\u003e \u003cp\u003eNyatakaka nyuiwo abe esia ene kpena ɖe sidzedze tutuɖo ŋu eye wòdoa nyametsotsowɔwɔ si ŋu wonya nu tsoe ɖe ŋgɔ le akpa vovovowo me.\u003c/p\u003e

Nyabiase Siwo Wobiana Enuenu

Nukae nye std::is_within_lifetime eye nukatae woto esia vɛ le C++26 me?

std::is_within_lifetime nye nuƒoƒoƒu-ɣeyiɣi ƒe emetɔ yeye si woto vɛ le C++26 me si dea dzesi nenye be nufiamɔ̃ si wona la fia nusi le eƒe agbenɔɣi fifia le dodokpɔ ɣesiaɣi me. Woto esia vɛ be woatsɔ akpɔ dometsotso si nɔ anyi ɣeyiɣi didi aɖe le constexpr ɖoɖowɔɖiwo me gbɔ, afisi mɔnu si le dedie, si woate ŋu atsɔ ayi teƒe bubuwo menɔ dɔwɔlawo si be woatsɔ ade dzesi nufiamɔ̃ ƒe mɔɖeɖe si ate ŋu anye esi mesɔ o le akɔntabubu-ɣeyiɣi ƒe akɔntabubu me o, si wɔnɛ be woate ŋu awɔ constexpr kɔda si sesẽ wu eye wòɖea nu fiana wu evɔ womeɖoa ŋu ɖe nuwɔna si womeɖe o ŋu o.

Aleke std::is_within_lifetime to vovo tso nufiamɔ̃ ƒe nyonyome dodokpɔ siwo li gbɔ?

To vovo na dɔwɔwɔ ƒe ɣeyiɣi ƒe dodokpɔwo abe null pointer comparisons alo sanitizer dɔwɔnuwo ene la, std::is_within_lifetime wɔa dɔ le nɔnɔme siwo woda asɔ ɣesiaɣi me ɖeɖeko. Menye duƒuƒu ƒe dɔwɔwɔe wònye o — womateŋu ayɔe le duƒuƒu ƒe kɔpi dzro me o. Esia na wòto vovo kura tso dɔwɔnuwo abe AddressSanitizer ene, siwo wɔa dɔ le nuƒoƒoƒu megbe. Enaa ŋusẽ nuƒoƒoƒula ŋutɔ be wòaɖo agbemebiabia ŋu, si wɔnɛ be constexpr union-based type punning kple kpɔɖeŋu mawo tɔgbe dze nyuie mlɔeba eye woate ŋu akpɔ wo.

Zazã ƒe nɔnɔme ŋutɔŋutɔ kawoe std::is_within_lifetime ʋuna na C++ dɔwɔlawo?

Zazã ƒe nɔnɔme si le enumake wue nye constexpr-xɔlɔ̃wɔwɔ std::optional kple std::variant zazã hacks manɔmee. Fifia dɔwɔlawo ate ŋu alé ŋku ɖe eŋu dedie nenye be dɔwɔha aɖe me tɔ si le dɔ dzi la sɔ le nuƒoƒoƒuɣi ƒe numekuku me. Le ƒuƒoƒo siwo le egbegbe C++ dɔwɔnuwo, agbalẽdzraɖoƒewo, alo mɔ̃wo tum — abe esiwo ƒoa ŋgɔyiyidɔwo ƒe ɖoɖowo nu ƒu to Mewayz dzi (207 modules, dze egɔme tso $19/mo) — nɔnɔme sia ɖea nuwɔna ƒe afɔku siwo womeɖe o dzi kpɔtɔna le template-heavy codebases me ŋutɔ.

Ðe wodoa alɔ std::is_within_lifetime le nuƒoƒoƒula gãwo katã me kpe ɖe C++26 ƒe nɔnɔme bubuwo ŋua?

Tso ƒe 2026 ƒe gɔmedzedze la, nuƒoƒoƒula ƒe kpekpeɖeŋu na std::is_within_lifetime gale dodom. GCC kple Clang ƒe dodokpɔ C++26 ƒe kpekpeɖeŋu le dɔ wɔm to -std=c++26 aflagawo dzi, kple nɔnɔme ƒe akpa aɖe ƒe anyinɔnɔ. MSVC hã le ŋgɔ yim to eƒe C++26 mɔfiame me. Woɖo aɖaŋu na dɔwɔlawo be woalé ŋku ɖe nuƒoƒoƒula ƒe nɔnɔme-dodokpɔ macros (__cpp_lib_is_within_lifetime) ŋu hafi azãe. Nɔnɔ yeye kple dɔwɔnu ƒe kɔsɔkɔsɔ yeyewo kple wò dev nɔnɔme dzi kpɔkpɔ — nane si mɔ̃wo abe Mewayz ene wɔna ɖe ɖoɖo nu le woƒe modules 207 me — gakpɔtɔ le vevie.