Jump to content

C++20

Վիքիպեդիայից՝ ազատ հանրագիտարանից

C++20, C++ ծրագրավորման լեզվի ստանդարտի ոչ պաշտոնական անվանումն է։ Այն ստեղծվել է Ստանդարտացման միջազգային կազմակերպության (ISO/IEC) կողմից և փոխարինում է C++17-ին[1]։ C++–ի ստանդարտավորման հանձնաժողովը սկսել է պլանավորել C++20-ը 2017 թվականի հուլիսին[2]։ Ընթացիկ նախնական օրինակն է N4778[3]։

Ստորև ներկայացված է փոփոխությունների մի մասը, որոնք ընդունվել կամ քննարկվել են՝ C++20 ստանդարտում ներառելու համար[4]։

Նոր փոփոխություններ

[խմբագրել | խմբագրել կոդը]

2017 թվականի հուլիսին C++20 նախագծում ներառելու համար ընդունված նոր փոփոխություններն են[5]՝

  • նախագծման ձևանմուշների ընդլայնումներ (concepts)[6]
  • նշանակված ինիցիալիզատորներ[7] (C99 ստանդարտի հիման վրա)
  • [=, this]՝ որպես լյամբդա գրավում[8]
  • նախագծման ձևանմուշների պարամետրերի ցուցակներ լյամբդաների համար[9]

2017 թվականի նոյեմբերի աշնանային հանդիպման ժամանակ ընդունված փոփոխությունները ներառում են[10][11]

  • եռակի համեմատում, որն օգտագործում է «տիեզերանավ օպերատորը»՝ operator <=>
  • for ցիկլի սահմաններում լրացուցիչ փոփոխականի ինիցիալիզացիա[12]
  • լյամբդաները չհաշվարկված կոնտեքստում[13][14]

Ծանոթագրություններ

[խմբագրել | խմբագրել կոդը]
  1. «The next standard after C++17 will be C++20»., by Herb Sutter
  2. «Current Status : Standard C++».
  3. «Working Draft, Standard for Programming Language C++» (PDF).
  4. «P0592R0: To boldly suggest an overall plan for C++20».
  5. Herb Sutter. «Trip report: Summer ISO C++ standards meeting (Toronto)».
  6. «P0606R0: Concepts Are Ready» (PDF).
  7. Tim Shen; Richard Smith. «Designated Initialization Wording».
  8. Thomas Köppe. «Allow lambda capture [=, this]».
  9. «Familiar template syntax for generic lambdas».
  10. Herb Sutter. «Trip report: Fall ISO C++ standards meeting (Albuquerque)».
  11. Smith, Richard; Perchik, Dawn; Köppe, Thomas. «N4714 Editors' Report -- Programming Languages -- C++». C++ standards drafts. GitHub. Վերցված է 2018 թ․ դեկտեմբերի 27-ին.
  12. «text-formatting language». Berlin/Heidelberg: Springer-Verlag. {{cite journal}}: Cite journal requires |journal= (օգնություն)
  13. «Trip Report: C++ Standards Meeting in Albuquerque, November 2017». There's Waldo! (ամերիկյան անգլերեն). 2017 թ․ նոյեմբերի 20. Վերցված է 2017 թ․ դեկտեմբերի 11-ին.
  14. «Wording for lambdas in unevaluated contexts» (PDF).