рдПрд▓рдПрд▓рд╡реАрдПрдо 16.0 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реВрдЯ рдХрд╛ рд╡рд┐рдореЛрдЪрди

рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж, рдПрд▓рдПрд▓рд╡реАрдПрдо 16.0 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд░рд┐рд▓реАрдЬ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ - рдПрдХ рдЬреАрд╕реАрд╕реА-рд╕рдВрдЧрдд рдЯреВрд▓рдХрд┐рдЯ (рдХрдВрдкрд╛рдЗрд▓рд░, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдФрд░ рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░) рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЖрд░рдЖрдИрдПрд╕рд╕реА-рдЬреИрд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдмрд╣реБ-рд╕реНрддрд░реАрдп рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдгрд╛рд▓реА)ред рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╕реНрдпреВрдбреЛрдХреЛрдб рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рд╕реАрдзреЗ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрд▓реИрдВрдЧ 16.0 рдореЗрдВ рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ C++/ObjC++ рдорд╛рдирдХ gnu++17 (рдкрд╣рд▓реЗ gnu++14) рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ GNU рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА C++17 рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк "-std=gnu++14" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • C++20 рдорд╛рдирдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЧрдИрдВ:
    • рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рддреБрдЪреНрдЫ рд╡рд┐рд╢реЗрд╖ рд╕рджрд╕реНрдп рдХрд╛рд░реНрдп,
    • рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛,
    • рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░,
    • рдХреБрдЫ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдЯрд╛рдЗрдкрдиреЗрдо рдХреАрд╡рд░реНрдб рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк,
    • рдХреЛрд╖реНрдардХреЛрдВ рдореЗрдВ рдорд╛рдиреНрдп рд╕рдордЧреНрд░ рдЖрд░рдВрднреАрдХрд░рдг ("рдПрдЬреАрдЬреАрдЖрд░(рд╡реИрд▓1, рд╡реИрд▓2)")ред
  • рднрд╡рд┐рд╖реНрдп рдХреЗ C++2b рдорд╛рдирдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИрдВ:
    • рдЗрд╕реЗ рдорд┐рд╢реНрд░рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓реЗрдмрд▓ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ,
    • рд╕реНрдереИрддрд┐рдХ рдСрдкрд░реЗрдЯрд░(),
    • рд╕реНрдереИрддрд┐рдХ рдСрдкрд░реЗрдЯрд░[],
    • char8_t рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ,
    • "\N{...}" рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рд╡рд░реНрдгреЛрдВ рдХреА рд╕реАрдорд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
    • рдХреЙрдиреНрд╕реНрдЯреЗрдХреНрд╕рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ "рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЙрдиреНрд╕реНрдЯреЗрдХреНрд╕рдкреАрдЖрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИред
  • рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕реА-рдорд╛рдирдХ рд╕реА2рдПрдХреНрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИрдВ:
    • "-Wunused-label" рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "[[maybe_unused]]" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓реЗрдмрд▓ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
    • рдЗрд╕реЗ рдорд┐рд╢реНрд░рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рднреАрддрд░ рдХрд╣реАрдВ рднреА рд▓реЗрдмрд▓ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ,
    • typeof рдФрд░ typeof_unqual рдСрдкрд░реЗрдЯрд░ рдЬреЛрдбрд╝реЗ рдЧрдП,
    • рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ nullptr_t рдФрд░ null рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ nullptr рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛ рдХрд┐рд╕реА рднреА рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ NULL рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ void* рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред
    • C2x рдореЛрдб рдореЗрдВ, va_start рдореИрдХреНрд░реЛ рдХреЛ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рдЪрд░ рд╕рдВрдЦреНрдпрд╛ (рд╡реЗрд░рд┐рдПрдбрд┐рдХ) рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
  • C99, C11, рдФрд░ C17 рдЕрдиреБрдкрд╛рд▓рди рдореЛрдб рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк "-рд╡рд┐рдореНрдкреНрд▓рд┐рд╕рд┐рдЯ-рдлрд╝рдВрдХреНрд╢рди-рдШреЛрд╖рдгрд╛" рдФрд░ "-рд╡рд┐рдореНрдкреНрд▓рд┐рд╕рд┐рдЯ-рдЗрдВрдЯ" рдЕрдм рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмрдЬрд╛рдп рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
  • C++ рдореЛрдб рдореЗрдВ "void *" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "void func(void *p) { *p; }") рдХрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдЕрдм ISO C++, GCC, ICC рдФрд░ MSVC рдХреЗ рд╕рдорд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  • рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ-рд╢реИрд▓реА рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓реА рдмреНрд▓реЙрдХ рдореЗрдВ рдмрд┐рдЯрдлреАрд▓реНрдб рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдСрдкрд░реЗрдВрдб (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "__asm тАЛтАЛтАЛтАЛ{mov eax, s.bf }") рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЕрдм рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  • рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдпреВрдирд┐рдпрдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рджрд╛рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • рдУрдкрдирд╕реАрдПрд▓ рдФрд░ рдУрдкрдирдПрдордкреА рд╕рдорд░реНрдерди рд╕реЗ рдЬреБрдбрд╝реА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред OpenCL рдХрд░реНрдиреЗрд▓ рддрд░реНрдХреЛрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд C++ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд┐рджрд╛рдиред AMDGPU рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХреНрдпреВрдЗрдВрдЧ рдмреНрд▓реЙрдХ рд╕рдорд░реНрдердиред рд╕рдВрдЬреНрдЮрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдорд░реНрдердиред
  • рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CLANG_CRASH_DIAGNOSTICS_DIR рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд░реИрд╢ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИред
  • рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдерди рдХреЛ рдпреВрдирд┐рдХреЛрдб 15.0 рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЧрдгрд┐рддреАрдп рдкреНрд░рддреАрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЬреИрд╕реЗ "тВК" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдбрдмрд▓ xтВЦтВКтВБ")ред
  • рдПрдХрд╛рдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд╣рд▓реЗ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдлрд┐рд░ "--config =" рдзреНрд╡рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдм рдХрдИ рдмрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдбрд┐рдВрдЧ рдХреНрд░рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛: рдХреНрд▓реИрдВрдЧ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ - .cfg, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдпрд╣ рджреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ .cfg рдФрд░ .рд╕реАрдПрдлрдЬреА. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "--no-default-config" рдзреНрд╡рдЬ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
  • рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, __DATE__, __TIME__ рдФрд░ __TIMESTAMP__ рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдорд╛рдиреЛрдВ рдХреЛ SOURCE_DATE_EPOCH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред
  • рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдмрд┐рд▓реНрдЯрд┐рди) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдХреНрд░реЛ "__has_constexpr_buildin" рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
  • рд╕рдВрд░реЗрдЦрд┐рдд рдХреЛрд░рдЖрдЙрдЯрд┐рди рдлреНрд░реЗрдо рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╕рдВрдХрд▓рди рдзреНрд╡рдЬ "-рдлрдХреЛрд░реЛ-рд╕рдВрд░реЗрдЦрд┐рдд-рдЖрд╡рдВрдЯрди" рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • "-fstrict-flex-arrays=" рдзреНрд╡рдЬ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд▓рдЪреАрд▓реЗ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рддреАрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рд▓рдЪреАрд▓реЗ рд╕рд░рдгреА рд╕рджрд╕реНрдп, рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА)ред рддреАрд╕рд░реЗ рд╕реНрддрд░ рдкрд░, рдХреЗрд╡рд▓ рдЖрдХрд╛рд░ "[]" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "int b[]") рдХреЛ рдПрдХ рд▓рдЪреАрд▓реА рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдХрд╛рд░ "[0]" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "int b[0]") рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред
  • рдорд╛рдирдХ C++ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХрд▓-рдЪрд░рдг рд╕рдВрдХрд▓рди рдореЙрдбрд▓ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "-fmodule-рдЖрдЙрдЯрдкреБрдЯ" рдзреНрд╡рдЬ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП "-Rpass-analyse=stack-frame-layout" рдореЛрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • AArch1 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ __attribute__((target_version("cpu_features"))) рдЬреЛрдбрд╝реА рдЧрдИ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ __attribute__((target_clones("cpu_features2","cpu_features64",...))) рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ред рд╕реАрдкреАрдпреВ.
  • рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдЯреВрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░:
    • рдПрдХрд▓-рдмрд┐рдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрд┐рдЯрдлрд╝реАрд▓реНрдб рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рдЯ-рдЫрд╛рдБрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "-Wsingle-bit-bitfield-constant-conversion" рдЪреЗрддрд╛рд╡рдиреА рдЬреЛрдбрд╝реА рдЧрдИред
    • рдЕрдкреНрд░рд╛рд░рдВрднреАрдХреГрдд рдХреЙрдиреНрд╕реНрдЯреИрдХреНрд╕ рдЪрд░ рдХреЗ рдирд┐рджрд╛рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
    • рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд░ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "-Wcast-function-type-strict" рдФрд░ "-Wincompatible-function-pointer-types-strict" рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдЬреЛрдбрд╝реА рдЧрдИрдВред
    • рдирд┐рд░реНрдпрд╛рдд рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдЧрд▓рдд рдпрд╛ рдЖрд░рдХреНрд╖рд┐рдд рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рджрд╛рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
    • рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЧреБрдо "рдСрдЯреЛ" рдХреАрд╡рд░реНрдб рдХрд╛ рдмреЗрд╣рддрд░ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред
    • "-рд╡рд┐рдВрдЯреЗрдЬрд░-рдУрд╡рд░рдлрд╝реНрд▓реЛ" рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдЬреЛрдбрд╝ рджреА рд╣реИ рдЬреЛ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред
  • LoongArch рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (-march=loongarch64 рдпрд╛ -march=la464) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Loongson 3 5000 рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ MIPS рдФрд░ RISC-V рдХреЗ рд╕рдорд╛рди рдирдП RISC ISA рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдПрд▓рдПрд▓рд╡реАрдПрдо 16.0 рдореЗрдВ рдкреНрд░рдореБрдЦ рдирд╡рд╛рдЪрд╛рд░:

  • рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛрдб рдХреЛ C++17 рдорд╛рдирдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
  • рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА рдЧрдИ рд╣реИред рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдХреЛ рдЕрдм C++17 рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддред рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо GCC 7.1, Clang 5.0, Apple Clang 10.0 рдпрд╛ Visual Studio 2019 16.7 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
  • AArch64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб Cortex-A715, Cortex-X3 рдФрд░ Neovers V2 CPUs, RME MEC (рдореЗрдореЛрд░реА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯреНрд╕) рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░, Armv8.3 рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдирдВрдмрд░) рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдорд▓реНрдЯреА рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмреИрдХрдПрдВрдб рдореЗрдВ, Armv2, Armv2A, Armv3 рдФрд░ Armv3M рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХреЛрдб рдХреА рдкреАрдврд╝реА рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рдереАред рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИред
  • X86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмреИрдХрдПрдВрдб рдиреЗ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (ISAs) AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред RDMSRLIST, RMSRLIST рдФрд░ WRMSRNS рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк "-mcpu=raptorlake", "-mcpu=meteorlake", "-mcpu=emeraldrapids", "-mcpu=sierraforest", "-mcpu=graniterapids" рдФрд░ "-mcpu=grandridge"ред
  • LoongArch рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • рдПрдордЖрдИрдкреАрдПрд╕, рдкрд╛рд╡рд░рдкреАрд╕реА рдФрд░ рдЖрд░рдЖрдИрдПрд╕рд╕реА-рд╡реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдмреИрдХрдПрдВрдб
  • рдПрд▓рдПрд▓рдбреАрдмреА рдбрд┐рдмрдЧрд░ рдореЗрдВ рд▓реВрдВрдЧрдЖрд░реНрдЪ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП 64-рдмрд┐рдЯ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред COFF рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рддреАрдХреЛрдВ рдХреА рдмреЗрд╣рддрд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧред рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдбреАрдПрд▓рдПрд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИред
  • Libc++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдореБрдЦреНрдп рдХрд╛рд░реНрдп C++20 рдФрд░ C++23 рдорд╛рдирдХреЛрдВ рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдерд╛ред
  • рдПрд▓рдбреАрдбреА рд▓рд┐рдВрдХрд░ рдПрдбреНрд░реЗрд╕ рд░рд┐рд▓реЛрдХреЗрд╢рди рд╕реНрдХреИрдирд┐рдВрдЧ рдФрд░ рд╕реЗрдХреНрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдСрдкрд░реЗрд╢рдВрд╕ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдХреЗ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред ZSTD рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрднрд╛рдЧ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ