рдореИрдВрдиреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рджреЗрдЦрд╛ рдХрд┐ рдкреАрд╡реАрдПрд╕ рдиреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╕реАрдЦрд╛, рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдпрд╣ рдЖрдпрд╛ рдерд╛ред
рд╕рд╛рдордЧреНрд░реА
- рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ
- рд╡рд┐рдкрдХреНрд╖
- рдкрд░рд┐рдгрд╛рдо
- рдЕрдВрддрднрд╛рд╖рдг
рдЙрддреНрддрд░рджрд╛рдпреА рд╕рдорд░реНрдерди
рдореИрдВрдиреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдЙрд╕реА рджрд┐рди рднреЗрдЬ рджрд┐рдпрд╛ред
рдкрд░реНрдпрд╛рдкреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ
рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдорджрдж рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╣реИрдВ, рд╡рд┐рдкрдХреНрд╖ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ)ред
рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреНрд╖рдорддрд╛
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдкрд╛рд╕ рдПрдХ "рдорд╛рдирдХ" рд╡рд┐рдХрд▓реНрдк -j
, рдЬреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрд╛рдлреА рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред
рдЕрдЪреНрдЫрд╛ рджреГрд╢реНрдп
рдкрд╛рда рд╕реЗ рдЫреЛрдЯреЗ рд╡реЗрдм рдереВрдерди рддрдХ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдкред рдХреЛрдб рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдпреБрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╡реЗрдм рдЪреЗрд╣рд░рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ ред
рдЖрд╕рд╛рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдПрдХреАрдХрд░рдг
рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╣реИрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ CMake рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдЕрдЪреНрдЫрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╡рд┐рд╡рд░рдг
рдпрджрд┐ рдЖрдк fullhtml
рдореЛрдб рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ рдирд┐рджрд╛рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг, рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рдеред
рд╕реА ++ рднрд╛рд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдЬреНрдЮрд╛рдирддрд╛
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреАрд╡реАрдПрд╕ рдХрднреА-рдХрднреА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝реА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдХреЛрдб рдХреЗ рд╕рд╛рде рдЭреВрдареЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ void
рджреЗрддрд╛ 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.
рдмрд╣реБрдд рдзреАрдореА рд╕рд╛рдЗрдЯ
рд╣рд╛рдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╡реЗрдм рдлреЗрд╕ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рджрд╛рди рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╡рд░рдг рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ 504 рдЧреЗрдЯрд╡реЗ рдЯрд╛рдЗрдо-рдЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИ ред
рднрд╛рд╖рд╛
рд╕рднреА рд╡рд┐рд╡рд░рдг рд░реВрд╕реА рдореЗрдВ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдВрдХ рд╣рдореЗрд╢рд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдирд┐рджрд╛рди рдХреЛ рддреБрд░рдВрдд рд░реВрд╕реА рдореЗрдВ рджреЗрдЦ рд╕рдХреЗрдВред рдореБрдЭреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рджреЛ рдХрдорд╛рдВрдб ( pvs-studio-analyzer
рдФрд░ plog-converter
) рдореЗрдВ рдЕрд▓рдЧ 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, ie 'GA:1,2;64:1;OP:1,2,3;CS:1;MISRA:1,2' Default: GA:1,2
рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ "рд╕реНрддрд░" рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдХреИрдЪ рдкрд░ рдмреЗрд╡рдХреВрдл рдХрд╕рдо рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛
рдореИрдВрдиреЗ рдЬрд┐рди рддреАрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдХреИрдЪ 2 рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдФрд░ рд╢реЗрд░реЛрдВ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ (рдПрдХ рдореЗрдВ 138 рдХрд╛ 90 рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ 344 рдХрд╛ 297 !!!) рдХрд╛ рдирд┐рдореНрди рд░реВрдк рд╣реИ !!!

рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдХрдерд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЪрд░ рдпрд╛ рдЕрдирдВрдд рдЫреЛрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛рдПрдВ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрди рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛, рддреЛ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдЯреИрдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛
рдкреАрд╡реАрдПрд╕ рдХреЛ рдореЗрд░реА рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдмрд░реНрд╕реНрдЯ рдФрд░ рдкреНрд░реЛрдХреНрд╕рд┐рдорд╛ рдореЗрдВ рдПрдХ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд▓рддреА рдирд╣реАрдВ рдорд┐рд▓реА, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдХрд╛рдо рдХреЗ рдорд╕реМрджреЗ рдореЗрдВ, рдЬрд┐рд╕реЗ рдореИрдВ, рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╕рдЪ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреБрдЫ рдЦрд╛рдорд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Cppcheck рдФрд░ 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
рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдЬрд╛рдиреЗрдВред
рдорд╛рдирдХ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рддреЗ рд╣реИрдВ
рдпрджрд┐ рдорд╛рдирдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВ, рддреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдирд┐рд░реНрднрд░ рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЙрдирдХреЗ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдХреНрд░реЛ рд╢реЙрдЯреНрд╕ (рдпрд╛ рдХреБрдЫ рдФрд░) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдФрд░ рдмрд╕ рд╣рдореЗрдВ рдЕрд╕рдорд░реНрдерд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рди рджреЗрдВред
рд╕реНрдЯреЗрдВрдбрд░реНрдб рдЯреВ рд╕реНрдЯреИрдгреНрдбрд░реНрдб рдСрдкрд░реЗрд╢рди рд╕реЗрдореЗрдВрдЯрд┐рдХреНрд╕
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛрдбрд╝, рдЧреБрдгрди рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрди, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓, рдХреЙрдкреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрд╛рд╕ ++
рдкреНрд░рдореЛрд╢рди рдФрд░ рдбреАрд░реЗрдлреЗрд░реЗрдВрд╕ *
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЖрдЧреЗ рднреАред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдРрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╕рдордЭреМрддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдкрд╛рдардХреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рджреВрд╕рд░реЛрдВ рдХреЛ рдкрдЫрд╛рдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ, рд╡рд░рдирд╛ рдЦреБрдж рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВред
рд╕рдВрдЧрдд рдХреЛрдб рд▓рд┐рдЦреЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╕реНрдЯ) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрд╕рдЯреАрдПрд▓ рдФрд░ рдмреВрд╕реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдЭрд╛рдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рджреБрд░реНрд▓рдн рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рдПрдХ рдпреЛрдЧреНрдп рд░реЛрд▓ рдореЙрдбрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЦреБрд▓реЗ рд╕рд╛рдзрди рдХрд░реЗрдВ
рдЙрд╕реА рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рджреЛ рдЦреБрд▓реЗ рдореБрдХреНрдд рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ "рд╕рдордп" рдХреА рдХреАрдордд рдкрд░ рд╕реАрдПрдордХреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред
рдЖрдк рдореЗрд░реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдкреАрд╡реАрдПрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрд╕реЗ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓рдЧрд╛рддрд╛рд░ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рддрд╛ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдХрд╛рд░рдг рдХреЛ рдЦреЛрдЬрдирд╛ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред