LLVM เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต C++ เตฝ เดฌเดซเตผ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตฝ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

LLVM เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดฎเดฟเดทเตป-เด•เตเดฐเดฟเดŸเตเดŸเดฟเด•เตเด•เตฝ C++ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเตเดฐเด•เตเดท เดถเด•เตเดคเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เดฌเดซเตผ เด“เดตเตผเดฑเตบ เดฎเต‚เดฒเดฎเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เดชเดฟเดถเด•เตเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฒเด•เตเดทเตเดฏเดฎเดฟเดŸเตเดŸเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดฐเดฃเตเดŸเต เดฎเต‡เด–เดฒเด•เดณเดฟเตฝ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เดฌเดซเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดตเดฟเด•เดธเดจ เดฎเต‹เดกเตฝ เดจเตฝเด•เตเดจเตเดจเต, เด’เดชเตเดชเด‚ libc++ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เดธเตเดฐเด•เตเดท เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

C++ เดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดธเตเดฐเด•เตเดทเดฟเดค เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดฎเต‹เดกเตฝ, เดฌเดซเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดตเต†เดฑเตเด‚ เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚ เดธเดพเดงเดพเดฐเดฃ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดจเตฝเด•เตเดจเตเดจ เด•เตเดฒเดพเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, std::array, std::vector, std::span เดŽเดจเตเดจเต€ เด•เตเดฒเดพเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดชเดฐเดฟเดงเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเตเดณเตเดณ เดฎเต†เดฎเตเดฎเดฑเดฟเด•เตเด•เดพเดฏเดฟ เดฑเตบ-เดŸเตˆเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดšเต‡เตผเด•เตเด•เตเด‚.

เด•เตเดฒเดพเด‚เด—เดฟเดฒเต† เด…เดชเด•เดŸเด•เดฐเดฎเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเด™เตเด™เดณเต† เดšเต†เดฑเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, "cppcoreguidelines-pro-bounds-pointer-arithmetic" เดซเตเดฒเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ clang-tidy เดฏเตเดŸเต† เดฒเดฟเดจเตเดฑเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพเด•เตเด•เต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ, เดŽเดฒเตเดฒเดพ เดชเต‹เดฏเดฟเดจเตเดฑเตผ เด—เดฃเดฟเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เตเด‚ เด•เดฎเตเดชเตˆเดฒเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดจเตฝเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด‚. เดฑเดฟเดฒเต€เดธเต LLVM 16. เด…เดคเตเดคเดฐเด‚ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด•เตเดฒเดพเด™เตเด™เดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดซเตเดฒเดพเด—เต เดšเต‡เตผเด•เตเด•เตเด‚, เด…เดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดธเดœเต€เดตเดฎเดฒเตเดฒ.

libc++-เตฝ เด’เดฐเต เด“เดชเตโ€Œเดทเดฃเตฝ เดนเดพเตผเดกเตโ€Œเดกเตปเดกเต เดชเตเดฐเตŠเดŸเตเดŸเด•เตเดทเตป เดฎเต‹เดกเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฑเตบ เดŸเตˆเดฎเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเดคเตเดค เดธเตเดตเดญเดพเดตเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจ เดšเดฟเดฒ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ เดชเดฟเดŸเดฟเด•เตเด•เตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, std::span, std::vector เด•เตเดฒเดพเดธเตเด•เดณเดฟเตฝ, เดชเดฐเดฟเดงเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเตเดณเตเดณ เด’เดฐเต เด†เด•เตเดธเดธเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เตเดฐเดพเดทเดพเด•เตเด‚. เด…เดคเตเดคเดฐเด‚ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดฒเดฟเดฌเดฟเดธเดฟ++ เดธเดฟ++ เดฎเดพเดจเดฆเดฃเตเดกเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดฎเต†เดจเตเดจเต เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเดคเตเดค เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เดŽเด™เตเด™เดจเต† เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเดคเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเดŸเต‡เดคเดพเดฃเต, เดฎเดฑเตเดฑเต เด•เดพเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚, เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเดคเตเดค เดธเตเดตเดญเดพเดตเดคเตเดคเต† เด•เตเดฐเดพเดทเดพเดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดพเด‚. เดชเตเดฑเดคเตเดคเตเด•เดŸเด•เตเด•เดพเดจเตเดณเตเดณ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚.

libc++ เดฒเต† เดฑเตบเดŸเตˆเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดตเตเดฏเด•เตเดคเดฟเด—เดคเดฎเดพเดฏเดฟ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดตเตเดจเตเดจ เดตเดฟเดญเดพเด—เด™เตเด™เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต‹ ABI เดฎเดพเดฑเตเดฑเด™เตเด™เดณเต‹ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเดคเตเดค เดšเดฟเดฒ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดš เดšเต†เด•เตเด•เตเด•เตพ เด‡เดคเดฟเดจเด•เด‚ libc++ เดจเตเดฑเต† เดธเตเดฐเด•เตเดทเดฟเดค เดฎเต‹เดกเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เด•เต‚เดŸเดพเดคเต†, เด•เต‹เดกเต เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเตป เด’เดฐเต เดŸเต‚เตพเด•เดฟเดฑเตเดฑเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด‡เดคเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เดจเด—เตเดจเดฎเดพเดฏ เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดชเต‹เดฏเดฟเดจเตเดฑเตผ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดค เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เด‡เดคเดฐ เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "if (array_pointer)" เด•เตบเดธเตเดŸเตเดฐเด•เตเดฑเตเดฑเต "if (span.data ()") เด†เดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดฒเต‹เด•เตเด•เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•