เดฒเดฟเดจเดเตเดธเดฟเดจเต เดเตเดดเดฟเตฝ เดชเดฟเดตเดฟเดเดธเต เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดชเด เดฟเดเตเด เดเดฐเต เดชเตเดฐเดธเดฟเดฆเตเดงเตเดเดฐเดฃเด เดเดพเตป เดเดฃเตเดเต, เด เดคเต เดเดจเตเดฑเต เดธเตเดตเดจเตเดคเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดชเดฐเตเดเตเดทเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต. เด เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเดตเดจเตเดจเดคเตเด เดเดคเดพเดฃเต.
เดเดณเตเดณเดเดเตเดเด
เดชเตเดฒเดฟ
เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดฟเดจเตเดคเตเดฃ
เดเดพเตป เดเดฐเต เดเตเดฐเดฏเตฝ เดเต เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเต, เด เดตเตผ เด เดคเต เด เดคเต เดฆเดฟเดตเดธเด เดเดจเดฟเดเตเดเต เด เดฏเดเตเดเต.
เดธเดพเดฎเดพเดจเตเดฏเด เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป
เดชเตเดฐเดถเตโเดจเดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเต เด
เดจเดฒเตเดธเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดเตเดเต. เดเตบเดธเตเตพ เดเดฎเดพเตปเดกเตเดเตพเดเตเดเตเดณเตเดณ เดธเดนเดพเดฏเดตเตเด เดฒเดญเตเดฏเดฎเดพเดฃเต (เดเดตเดฟเดเต เดเดฟเดฒ เดชเดฐเดพเดคเดฟเดเตพ เดเดฃเตเดเตเดเตเดเดฟเดฒเตเด, เดตเดฟเดญเดพเดเด เดเดพเดฃเตเด
เดฎเตพเดเตเดเดฟ-เดคเตเดฐเตเดกเดกเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเต เดธเดพเดงเตเดฏเดค
เด
เดจเดฒเตเดธเดฑเดฟเดจเต เดเดฐเต "เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต" เดเดชเตเดทเตป เดเดฃเตเดเต -j
, เดจเดฟเดฐเดตเดงเดฟ เดเตเดฒเดฟเดเดณเดฟเตฝ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดตเดฟเดถเดเดฒเดจเด เดจเดเดคเตเดคเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดงเดพเดฐเดพเดณเด เดธเดฎเดฏเด เดฒเดพเดญเดฟเดเตเดเตเดจเตเดจเต.
เดจเดฒเตเดฒ เดฆเตเดถเตเดฏเดตเตฝเดเตเดเดฐเดฃเด
เดเตเดเตโเดธเตโเดฑเตเดฑเต เดฎเตเดคเตฝ เดเดฐเต เดเตเดฑเดฟเดฏ เดตเตเดฌเต เดฎเตเดเตเดเต เดตเดฐเต เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดเตเดเตโเดชเตเดเตเดเต เดซเตเตผเดฎเดพเดฑเตเดฑเตเดเตพ.
เด เดธเดเดฌเตเดฒเดฟเดฏเดฟเตฝ เดเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดธเดเดฏเตเดเดจเด
เดเดฒเตเดฒเดพ เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเตเด เด เดตเดฐเตเดเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเดฟเตฝ เดเดฃเตเดเต, เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต CMake เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดคเตเดเตเดเดฟเตฝ, เดเดฒเตเดฒเดพเด เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเตเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต เดเดจเดฟเดเตเดเต เดชเดฑเดฏเดพเตป เดเดดเดฟเดฏเต.
เดจเดฒเตเดฒ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเต เดตเดฟเดตเดฐเดฃเดเตเดเตพ
เดจเดฟเดเตเดเตพ เดฎเตเดกเดฟเตฝ เดเดเตเดเตเดชเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ fullhtml
, เดคเตเดเตผเดจเตเดจเต เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเด เดเดฐเต เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเต เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดฒเดฟเดเตเดเต เดเดฃเตเดเต, เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเดณเตเด เดเตเดกเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเตเด เด
เดงเดฟเด เดฒเดฟเดเตเดเตเดเดณเตเด.
ะะธะฝััั
เด เดจเดฒเตเดธเตผ เดธเดฟ++ เดญเดพเดทเดฏเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เด เดเตเดเดค
เดจเดฟเตผเดญเดพเดเตเดฏเดตเดถเดพเตฝ, PVS เดเดฟเดฒเดชเตเดชเตเตพ เดตเดพเดเตเดฏเดเดเดจ เดชเดฟเดถเดเตเดเตพ เดตเดฐเตเดคเตเดคเตเดเดฏเตเด เดเตเดกเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดถเดฐเดฟเดฏเดพเดเตเดฎเตเดชเตเตพ เดคเตเดฑเตเดฑเดพเดฏ เดชเตเดธเดฟเดฑเตเดฑเตเดตเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจ เดเดฐเต เดซเดเดเตเดทเตป เดเดฃเตเดเต void
:
template <typename T>
auto copy (const void * source, void * destination)
->
std::enable_if_t
<
std::is_copy_constructible<T>::value
>
{
new (destination) T(*static_cast<const T *>(source));
}
เด
เดคเต เดเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจ เดตเดพเดเตเดเต auto
เด
เตผเดคเตเดฅเดฎเดพเดเตเดเดพเด void
, เด
เดคเดฟเดจเดพเดฃเต เดเดพเดฐเต. เดเดจเตเดจเดพเตฝ เดชเดฟเดตเดฟเดเดธเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดจเตฝเดเดฟ:
dynamic_tuple_management.hpp:29:1: error: V591 Non-void function should return a value.
dynamic_tuple_management.hpp:29:1: error: V2542 Function with a non-void return type should return a value from all exit paths.
เดตเดณเดฐเต เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดธเตเดฑเตเดฑเต
เด
เดคเต, เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเด เด
เดเตเดคเตเดคเตเดณเตเดณ เดตเตเดฌเต เดเดจเตเดฑเตผเดซเตเดธเดฟเตฝ เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเตเดณเตเดณ เด
เดจเตเดฌเดจเตเดง เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเต เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดฒเดฟเดเตเดเต เดเดฃเตเดเต. เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพ เดเดฐเต เดฒเดฟเดเตเดเดฟเตฝ เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดตเดณเดฐเตเดเตเดเดพเดฒเด เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดฟเดตเดฐเตเด, เดเดฟเดฒเดชเตเดชเตเตพ เด
เดคเต เดธเดเดญเดตเดฟเดเตเดเตเด
เดญเดพเดท
เดเดฒเตเดฒเดพ เดตเดฟเดตเดฐเดฃเดเตเดเดณเตเด เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเดฒเดพเดฃเต, เด เดคเต เดฎเดฟเดเดเตเดเดคเดพเดฃเต. เดเดจเตเดจเดพเตฝ เดฑเดฟเดชเตเดชเตเตผเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฒเดฟเดเตเดเตเดเตพ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดเดเดเตเดฒเตเดทเต เดชเดคเดฟเดชเตเดชเดฟเดฒเตเดเตเดเต เดจเดฏเดฟเดเตเดเตเดจเตเดจเต. เดญเดพเดท เดฎเดพเดฑเตเดฑเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเต เดจเดจเตเดจเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เด เดคเตเดตเดดเดฟ เดจเดฟเดเตเดเตพเดเตเดเต เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเตฝ เดเดเดจเดเดฟ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเตเดธเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด. เดเดจเตเดฑเตผเดซเตเดธเดฟเตฝ เด เดคเตเดคเดฐเดฎเตเดฐเต เดเดชเตเดทเตป เดเดพเตป เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ.
เดเตบเดธเตเตพ เดตเดดเดฟ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเต เดฒเตเดตเดฒเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เด เดธเตเดเดฐเตเดฏเดฎเดพเดฃเต
เดฐเดฃเตเดเต เดเดฎเดพเตปเดกเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดตเตเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด (เดเดคเต pvs-studio-analyzer
ะธ plog-converter
) เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเตเดธเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดธเตเดค เดซเตเตผเดฎเดพเดฑเตเดฑเตเดเตพ.
เดตเตเดฃเตเดเดฟ เดธเดนเดพเดฏเด pvs-studio-analyzer
เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต:
-a [MODE], --analysis-mode [MODE]
MODE defines the type of warnings:
1 - 64-bit errors;
2 - reserved;
4 - General Analysis;
8 - Micro-optimizations;
16 - Customers Specific Requests;
32 - MISRA.
Modes can be combined by adding the values
Default: 4
เดเดเตเดเตเดเตเดเต เดชเตเดเดฃเด เดเดจเตเดจเดฑเดฟเดฏเดพเตป เดเดพเตป เดเดฐเตเดชเดพเดเต เดจเตเดฐเด เดถเตเดฐเดฎเดฟเดเตเดเต เดเตเตผเดเตเดเตเด ("เดฎเตเดฒเตเดฏเดเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเต") เดเตเดเตพ. เดเดพเตป เด เดตเดฏเต เดเตเดฎเดเดณเดพเตฝ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเต เดชเดเตเดเดฟเดเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเต:
pvs-studio-analyzer analyze ... -a 1,4,16
เดเดพเตป เดชเดฒเดคเดตเดฃ เดเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเต:
pvs-studio-analyzer analyze ... -a 1 -a 4 -a 16
เด เดชเตเดชเตเดดเดพเดฃเต เดเดจเดฟเดเตเดเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดคเต เดเดต เดฌเดฟเดฑเตเดฑเต เดฎเดพเดธเตเดเตเดเดณเดพเดฃเตเดจเตเดจเต! เดจเดฟเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดฃเตเดเต เดธเดเดเตเดฐเดนเดเดชเดเตเดทเต เดเดฒเตเดฒ เดเตเตผเดเตเดเตเด เด เตผเดคเตเดฅเดเตเดเตพ. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเตเดคเตเดตเดพเดฏ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเตเดธเต, เดฎเตเดเตเดฐเต เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเตเดทเดจเตเดเตพเดเตเดเตเดณเตเดณ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเตเดธเต, เดฎเดฟเดธเตเดฐ เดเดจเตเดจเดฟเดต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เด เดต เดธเดเดเตเดฐเดนเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต (4 + 8 + 32 = 44):
pvs-studio-analyzer analyze ... -a 44
เดเดชเดฏเตเดเตเดคเต เดเดจเตเดฑเตผเดซเตเดธเตเดเดณเดฟเตฝ เดฌเดฟเดฑเตเดฑเตเดฎเดพเดธเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดคเตเดตเต เดฎเตเดถเด เดฐเตเดชเดฎเดพเดฃเต. เดเดคเตเดฒเตเดฒเดพเด เดเดจเตเดคเดฐเดฟเดเดฎเดพเดฏเดฟ เดธเดเดเตเดฐเดนเดฟเดเตเดเดพเด, เดเตเดเดพเดคเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดเดฐเต เดเตเดเตเดเด เดซเตเดฒเดพเดเตเดเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเด.
เดเตเดเดพเดคเต, เดเดฐเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเด เดเดฃเตเดเต plog-converter
, เดเดคเต เดฎเดจเตเดทเตเดฏเตผเดเตเดเต เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดตเดฟเดถเดเดฒเดจ เดตเดฟเดตเดฐเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต. เด
เดตเตพเดเตเดเต เดตเตเดฑเตเดฏเตเด เดชเตเดฐเดถเตเดจเดเตเดเดณเตเดฃเตเดเต.
เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดณเตเดณ เดธเดนเดพเดฏเด plog-converter
เดฑเดฟเดชเตเดชเตเตผเดเตเดเตเดเตพ:
-a, --analyzer Specifies analyzer(s) and level(s) to be
used for filtering, i.e.
'GA:1,2;64:1;OP:1,2,3;CS:1;MISRA:1,2'
Default: GA:1,2
เดฎเตเดฎเตเดชเต เดเดฒเตเดฒเดพเดคเดฟเดฐเตเดจเตเดจ เดเดฟเดฒ "เดฒเตเดตเดฒเตเดเตพ" เดเดตเดฟเดเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต, เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเดฟเตฝ เด เดตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดจเตเดจเตเด เดเดพเตป เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ.
เดชเตเดคเตเดตเต, เด เดคเต เดตเตเดฏเดเตเดคเดฎเดฒเตเดฒ. เด เดคเตเดเตเดฃเตเดเดพเดฃเต เดเดพเตป เดเดฒเตเดฒเดพเด เดชเดฐเดฎเดพเดตเดงเดฟ เดธเดเตเดเดฎเดพเดเตเดเดฟเดฏเดคเต.
เดเตเดฏเดพเดเตเดเดฟเตฝ เดเดฐเต เดเตเดเตเดเด เดฎเดฃเตเดเดคเตเดคเดฐเดเตเดเตพ
เดเดพเตป เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดค เดฎเตเดจเตเดจเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดฐเดฃเตเดเตเดฃเตเดฃเด เดเดฐเต เดฏเตเดฃเดฟเดฑเตเดฑเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เดฒเตเดฌเตเดฐเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เดฎเตพเดเตเดเดฟเดคเตเดฐเตเดกเดฟเดเดเต เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ
เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เด เดจเดจเตเดคเดฎเดพเดฏ เดฒเตเดชเตเดชเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เดงเดพเดฐเดพเดณเด เดคเตเดฑเตเดฑเดพเดฏ เดชเตเดธเดฟเดฑเตเดฑเตเดตเตเดเตพ เดเดฃเตเดเต, เด เดคเตเดธเดฎเดฏเด เด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเตเดฐเตเดกเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต, เดเดคเต เด เดเตเดเดจเตเดฏเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฏเตเดฃเดฟเดฑเตเดฑเต เดเตเดธเตเดฑเตเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเดฑเดฟเดจเต เดเดคเต เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเต? เด เดฑเดฟเดฏเดฟเดฒเตเดฒ.
เดซเดฒเดเตเดเตพ
เดเดจเตเดฑเต เดเดชเตเดชเตบ เดธเตเดดเตเดธเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ PVS เดฏเดฅเดพเตผเดคเตเดฅ เดฌเดเตเดเดณเตเดจเตเดจเตเด เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ scan-build
เดชเตเดคเตเดตเต, เด เด เดจเดฒเตเดธเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเดคเดฟเดชเตเดชเต เดเดเดฆเตเดถเด เดธเดฎเดพเดจเดฎเดพเดฃเต: เด เดคเต, เด เดตเตผ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดชเดฟเดเดฟเดเตเดเตเดจเตเดจเต, เดเดฟเดฒเดชเตเดชเตเตพ เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดชเตเดฒเตเด, เดเดจเตเดจเดพเตฝ เดฎเตเดคเตเดคเดคเตเดคเดฟเตฝ เดเดเดชเตเดฒเตผ เดฎเดคเดฟเดฏเดพเดเตเด.
เดเดเตเดเดณเตเดเต เดเตเด เดธเตเดซเตโเดฑเตเดฑเตโเดตเตเดฏเตผ เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดฐเตเดคเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต (เดเดจเดฟเดเตเดเต เดตเตเดฏเดเตเดคเดฟเดชเดฐเดฎเดพเดฏเดฟ เด เดเตเดเดจเต เดเดฟเดจเตเดคเดฟเดเตเดเดพเตป เดเดทเตเดเดฎเดพเดฃเต) เดเตเดฑเดเตเด เด เดณเดตเดฟเดฒเตเดณเตเดณ เดตเตเดคเตเดคเดฟเดเตเดเตเด เดเตเดกเต เดธเตเดทเตโเดเดฟเดเตเดเดพเตป เดเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดตเตเดฐเตเดเดฟเดคเดฎเดพเดฏเดฟ เด เดตเดฏเต เดฎเดฑเดฟเดเดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดจเดฒเตเดฒเดคเต เดชเตเดฐเดถเตเดจเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต.
เด เดคเตเดเตเดฃเตเดเต, เดเดฐเตเดเตเดฏเตเด เดเดพเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดเดฟเดฏเตเดเดฏเต เดจเตเดฑเตเดฑเดฟเดฏเดฟเตฝ เดเดฐเต เดฑเตเดเตเดเต เดเตเดฃเตเดเต เด เดเดฟเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเดพเดคเตเดค เดตเดฟเดงเดคเตเดคเดฟเตฝ C++ เตฝ เดเดเตเดเดจเต เดเดดเตเดคเดพเด เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฟเดฒ เดเดชเดฆเตเดถเดเตเดเตพ เดจเตฝเดเดพเดจเตเดณเตเดณ เดธเตเดตเดพเดคเดจเตเดคเตเดฐเตเดฏเด เดเดพเตป เดเดเตเดเตเดเตเดจเตเดจเต.
เดเดเดชเตเดฒเตผ เดกเดฏเดเตเดจเตเดธเตเดฑเตเดฑเดฟเดเตเดธเต เดชเดฐเดฎเดพเดตเดงเดฟ เดชเตเดฐเดฏเตเดเดจเดชเตเดชเตเดเตเดคเตเดคเตเด
เดเดเตเดเดณเตเดเต เดเตเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเดฎเดพเดนเดพเดฐ เดเดชเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต (เดจเดฟเดเตเดเดณเต เดเดชเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต):
-Werror
-Wall
-Wextra
-Wpedantic
-Wcast-align
-Wcast-qual
-Wconversion
-Wctor-dtor-privacy
-Wenum-compare
-Wfloat-equal
-Wnon-virtual-dtor
-Wold-style-cast
-Woverloaded-virtual
-Wredundant-decls
-Wsign-conversion
-Wsign-promo
เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเตฝ เด เดต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดเดฏเตเด เดจเดฟเดเตเดเดณเตเดเต เดเตเดกเดฟเดจเต เดเตเดฑเดฟเดเตเดเต เดงเดพเดฐเดพเดณเด เดชเด เดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดจเดฟเดฒเดตเดพเดฐเด เดชเตเดฒเตผเดคเตเดคเตเด
เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เด เดจเดฒเตเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเด-เดเดถเตเดฐเดฟเดค เดเดพเดฐเตเดฏเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด, เด เดต เดเตเดเดพเดคเต เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดตเดฏเต เดฎเดพเดเตเดฐเตเดเตพเดเตเดเดพเดฏเดฟ (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเตเดจเตเดคเตเดเตเดเดฟเดฒเตเด) เดชเตเดฐเดคเตเดฏเตเด เดฌเตเดฒเตเดเตเดเตเดเดณเดฟเตฝ เดชเตเดคเดฟเดฏเตเด, เดชเดฟเดจเตเดคเตเดฃเดฏเดฟเดฒเตเดฒเดพเดคเตเดค เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเตฝ เดจเดฟเดเตเดเดณเตเดเต เดเตเดกเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเดฐเตเดคเต.
เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดชเตเดชเดฑเตเดทเตป เดธเตเดฎเดพเดจเตเดฑเดฟเดเตเดธเดฟเตฝ เดเดฑเดเตเดเตเดจเดฟเตฝเดเตเดเตเด
เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตฝ เดธเดเตเดเดฒเดจเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดเตเดฃเดจเด เดเตเดฃเดจเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดซเดเดเตโเดทเตป เดเตเตพ เดซเดเดเตโเดทเตป เดเตเตพ เดเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดชเดเตผเดชเตเดชเต เดชเดเตผเดชเตเดชเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดเตเดฃเตเดเตเดชเตเดเดฃเด, เดเตเดฃเตเดเตเดชเตเดเดฃเด, เดเดฃเตเดเตเดฏเตโเดจเตผ เดเดตเตผเดคเตเดคเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดเดฑเตเดฑเดฑเตเดฑเตเดฑเดฑเดฟเดจเต เดชเตเดฐเดฎเตเดทเตป เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด ++
เดเดชเตเดชเด dereferencing *
. เด
เดเตเดเดจเต เดชเดฒเดคเตเด.
เดเดถเดฏเด เดตเตเดฏเดเตเดคเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเตเดจเตเดจเต. เดฌเตเตปเดกเดฟเดเดเต เด เดฒเตเดฒเดพเดคเตเดค, เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเดณเตเดเต เดเตเดกเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเด เดตเดพเดฏเดจเดเตเดเดพเดฐเตเด เดเดพเดฃเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจ เดธเตเดฅเดพเดชเดฟเดค เดเตบเดตเตเตปเดทเดจเตเดเดณเตเดฃเตเดเต. เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเต เดฎเดฑเดฟเดเดเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดฐเตเดคเต, เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดจเดฟเดเตเดเตพ เดธเตเดตเดฏเด เดฎเดฑเดฟเดเดเดเตเดเตเด.
เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดเตเดกเต เดเดดเตเดคเตเด
เดเดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดเดพเตป เดเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดพเดฃเต. เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเดพเดธเตเดเดณเตเดเตเดฏเตเด เดซเดเดเตโเดทเดจเตเดเดณเตเดเตเดฏเตเด เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต, เดฎเดฑเตเดฑเต เดฒเตเดฌเตเดฐเดฑเดฟเดเตพ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฌเตเดธเตเดฑเตเดฑเต) เดเดชเดฏเตเดเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต เด เดญเดฟเดเดพเดฎเตเดฏเดฎเดพเดฃเต.
STL, เดฌเตเดธเตเดฑเตเดฑเต เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ เดจเตเดเตเดเดพเตป เดฎเดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ. เด เดชเตเตผเดตเดฎเดพเดฏ เดเดดเดฟเดตเดพเดเตเดเดฒเตเดเดณเตเดเต, เดฏเตเดเตเดฏเดจเดพเดฏ เดเดฐเต เดฑเตเตพ เดฎเตเดกเตฝ เดจเดฟเดเตเดเตพ เด เดตเดฟเดเต เดเดพเดฃเตเด.
เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต เดเตเดณเตเดเตพ เดชเดฐเดฎเดพเดตเดงเดฟ เดชเตเดฐเดฏเตเดเดจเดชเตเดชเตเดเตเดคเตเดคเตเด
เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ, CMake เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดคเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเตเด เดเดฐเต เดคเดตเดฃ เดฎเดพเดคเตเดฐเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดฐเดฃเตเดเต เดเดชเตเดชเตบ เดซเตเดฐเต เดเตเดณเตเดเดณเตเดเตเดเดฟเดฒเตเด เดเดฃเตเดเต.
Afterword
เด เดตเดธเดพเดจเดฎเดพเดฏเดฟ, PVS เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเตเดคเตเดเตเดเดฟเดฒเตเด เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดฐเตเดคเตเดจเตเดจเต เดเดพเตป เดตเดพเดฆเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดจเตเดจเดฟเดชเตเดชเดฑเดฏเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเตผ เดจเดฟเดเตเดเดณเตเดเต เดเตเดกเดฟเตฝ เดเดพเดฐเตเดฏเดฎเดพเดฏ เดชเดฟเดถเดเตเดเตพ เดจเดฟเดฐเดจเตเดคเดฐเด เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเตเดจเตเดจเต เดเดฟเดจเตเดคเดฟเดเตเดเดพเตป เดเดพเตป เดจเดฟเดเตเดเดณเต เดชเตเดฐเตเดคเตเดธเดพเดนเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต.
เดเดคเตเดฐเต เด เดจเดจเตเดคเดฐเดซเดฒเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เดเดพเดฐเดฃเด เดเดฃเตเดเตเดคเตเดคเตเดเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดตเตเดฃเด.
เด เดตเดฒเดเดฌเด: www.habr.com