LLVM 18 เบŠเบธเบ” compiler เบกเบตเปƒเบซเป‰

เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบปเบเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ LLVM 18.1.0 เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบต - เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš GCC (compilers, optimizers เปเบฅเบฐ code generator) เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bitcode เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ virtual เบ„เป‰เบฒเบเบ„เบท RISC (เป€เบ„เบทเปˆเบญเบ‡ virtual เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบ—เบตเปˆเบกเบต a. เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบฅเบฐเบ”เบฑเบš). เบฅเบฐเบซเบฑเบ” pseudocode เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบชเบฑเบ‡เบฅเบงเบก JIT เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป‚เบ”เบเบเบปเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™.

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฒเบ‚เบฒ 18.x, เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเป€เบฅเบเบชเบฐเบšเบฑเบš. เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ GCC เปเบฅเบฐ GDB, เบเบฒเบ™เบ›เปˆเบญเบเบชเบนเบ™ ("N.0") เบ›เบฐเบˆเบธเบšเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เป€เบฅเบ "N.1". เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปเบเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบ•เปเบˆเบฒเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบเบฒเบ™เบ›เปˆเบญเบเบชเบธเบ”เบ—เป‰เบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบญเบเบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบชเบฒเบ‚เบฒเบ—เบตเปˆเบšเปเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡ LLVM 18.0, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบญเบเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบžเบฒเบเปƒเบ•เป‰เบ•เบปเบงเป€เบฅเบ 18.1.0. เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ—เบธเบเป†เบชเบญเบ‡เบญเบฒเบ—เบดเบ”เบžเบฒเบเปƒเบ•เป‰เบ•เบปเบงเป€เบฅเบ 18.1.1, 18.1.2, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ–เป‰เบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฑเบšเบชเบฒเบ‚เบฒเบ›เบฐเบˆเบธเบšเบฑเบ™เบ—เบตเปˆเบฅเบฐเป€เบกเบตเบ” ABI, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเบงเป€เบฅเบเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบฎเบธเปˆเบ™ (i.e. 18.2.0).

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ Clang 18:

  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบฒเบชเบฒ C:
    • เป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบชเบฐเบซเบฐเบžเบฑเบ™ เปเบฅเบฐ arrays เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "const", เป‚เบ”เบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš GCC, เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ„เบปเบ‡เบ—เบตเปˆ.
    • Enums เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เปƒเบ™ TBAA (Type Based Alias โ€‹โ€‹โ€‹โ€‹Analysis) metadata เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” integer เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” "char".
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "counted_by", เป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ array เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™ array เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰. เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ clang เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบš overflow buffer.
  • เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” C-standard C23:
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบ‡ "-std=c23" เปเบฅเบฐ "-std=gnu23", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปˆเบฒ "202311L" เบชเปเบฒเบฅเบฑเบš "__STDC_VERSION__" เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C23 เปเบฅเบฐเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU C23.
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ "เบ•เป‰เบญเบ‡เบเบฒเบ™ c23" เป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เป‚เบกเบ”เบนเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C23.
    • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ inference เบ›เบฐเป€เบžเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบงเบฑเบ”เบ–เบธ, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡: โ€œauto y = cos(x);โ€.
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป„เบŸเบฅเปŒ header เบเบฑเบš macro เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.
    • เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบงเบฒเบ‡เบ›เป‰เบฒเบเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบเปเป„เบ”เป‰เบžเบฒเบเปƒเบ™เบชเปเบฒเบ™เบงเบ™เบ›เบฐเบชเบปเบก.
    • เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” C23, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš trigraphs, เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบชเบฒเบกเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ ASCII เบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ”เบฝเบง, เปเบกเปˆเบ™เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเปเบฒเบ”เบฑเบš "??=" เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปเบ—เบ™ "#". เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบกเบฒเบฎเบญเบ”เบ‚เบญเบ‡ Unicode, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ trigraphs เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบ.
  • เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ 20: เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบปเบ”เบฅเบญเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเป€เบžเบ”เปƒเบ™เปเบกเปˆเปเบšเบš, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบเบ•เบปเบง, เบ•เบปเบงเบŠเบตเป‰เปเบฅเบฐเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบงเบฑเบ”เบ–เบธเบเปˆเบญเบ.
  • เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ 23: เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบปเบ™เป„เบ "เบซเบฑเบเบ™เบตเป‰", เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบ™เบตเป‰" เปƒเบ™เปเบกเปˆเปเบšเบšเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเบฑเป‰เบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”. เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ) เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ.
  • เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++2c (C++26) เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”:
    • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเปเบ›เบ•เบปเบงเบเบถเบ”เบšเปˆเบญเบ™เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ โ€œ_โ€ เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ”เบฝเบง, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเป‰เบง: struct S { int _, _; }; void func() { int _, _; } void other() { int _; // เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ™เบตเป‰โ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบ”เป‰โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เปƒเบ™ -Wunused mode }
    • เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡เปƒเบ™เบšเปเบฅเบดเบšเบปเบ”เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ array เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปเบฅเบฐเบšเปเปˆเบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เปเบ•เปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ›เบฑเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡. เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ _Pragma, asm, extern, static_assert, [[เบ›เบฐเบ•เบดเป€เบชเบ”]] เปเบฅเบฐ [[nodiscard]].
    • เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เบญเบ‡โ€‹เบ„เปˆเบฒ enumerated เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบเบปเบโ€‹เป€เบฅเบตเบ. int main() { enum E1 { e } ; enum E2 { f } ; bool b = e

      เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru
เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster