рд╣реБрдб рдХреЗ рддрд╣рдд: рдлреНрд▓рд┐рдВрдЯ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЦреЛрд▓рдирд╛

рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рддреНрдпрд╛рдкрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдлреЗрд╕рдмреБрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдЕрдкрдиреА рдЧрд░реНрджрди рдкрд░ рд╢реИрд▓реАрдЧрдд рдирд┐рдпрдо рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛, рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдЪреЗрддрд╛рд╡рдиреА рдкреВрд░реЗ рдХрд╛рд░реНрдп рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ: рдпрджрд┐ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдпрд╛рдВрддреНрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдпрдВрддреНрд░рд╡рдд рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдареАрдХ рд╣реЛрддреЗ рд╣реА рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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



рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?



C ++ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдирд╛ рджрд┐рд▓ рдХреЗ рдмреЗрд╣реЛрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ C ++ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдлрд┐рд░ рднреА, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде analyzers рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдХреБрдЫ рднреА рдЦреБрд▓рд╛ рд╕реНрд░реЛрддред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╡рд╛рд▓ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдирд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдФрд░ рдореМрдЬреВрджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдпрд╣ рдХрд╛рдлреА рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред

рдЬрдм рд╣рдордиреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рдзреАрдореЗ рдереЗ рдФрд░ рд╣рдордиреЗ C ++ 11 рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдХреНрд▓реИрдВрдЧ, рдЬреЛ рдЖрдЬ рд╕реА ++ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╣реЛрдЧрд╛, рдЙрд╕ рд╕рдордп рдмрд╣реБрдд рдХрдо рд╕рдорд░реНрдерди рдХреА рдкреЗрд╢рдХрд╢ рдХреАред рдФрд░ рдЕрдм рднреА, рдпрд╣ рд╣рдорд╛рд░реЗ C ++ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХреЗ рдирд┐рдпрдо рдЙрди рд╕рдВрдЧрдардиреЛрдВ рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдХрд▓реНрдкрдирд╛ рдХреА рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЦреЛрдЬ рд░рд╣реЗ рдереЗ рдФрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреЛрдИ рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬреЛ рднреА рдЪреБрдирддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЙрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред



рдЯреЛрдХрди, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рднрд╛рд╖рд╛ рдбреА, рдУрд╣!



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

рдЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рддреЗрдЬреА рд╕реЗ рдЯреЛрдХрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛, рд╕рд░рд▓ рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЗрд╕реЗ рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЗрд╕ рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд░рдирд╛ рдХрд┐ рд▓реЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рдпрдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдиреЗ рд▓рдЧрднрдЧ рджреЛ рджрд░реНрдЬрди рдирд┐рдпрдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдЬрд╛рдВрдЪ рд▓реЗрдВрдЧреЗред

рдлреНрд▓рд┐рдВрдЯ рдбреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдлреЗрд╕рдмреБрдХ рдХреА рдУрд░ рд╕реЗ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛; рдбреА рдЕрдиреБрд╡рд╛рдж рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖред рдорд╛рдк рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдФрд░ рдЙрди рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рдирдореЗрдВ рд╣рдордиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдерд╛, рдбреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╕рднреА рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдПрдХ рдЬреАрдд рдереА: рдбреА рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛ рдЧрдпрд╛, рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рд╣реБрдЖ, рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдерд╛ред



C ++ рд╕реЗ D рддрдХ рдХрд╛ рдлреНрд▓рд┐рдВрдЯ рдЕрдиреБрд╡рд╛рдж



C ++ рд╕реЗ D рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЕрд░реНрдз-рдпрд╛рдВрддреНрд░рд┐рдХ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдпрд╛рдиреА C + рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрдо D рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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



рдореИрдВрдиреЗ рдПрдХ 58 рд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдореИрдЪ рдЯреНрд░реА рдмрдирд╛рддрд╛ рд╣реИред C ++ рдХреЗ рд▓рд┐рдП, 965 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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



рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд╛рдж, рдлрд╝реНрд▓рд┐рдВрдЯ рд╕рдВрдкрд╛рджрди / рдЕрд╕реЗрдВрдмрд▓реА / рдкрд░реАрдХреНрд╖рдг рдЪрдХреНрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реЛ рдЧрдпрд╛ред D рдкрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдлреНрд▓рд┐рдВрдЯ C ++ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдЬреЛ рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреА рдЧрддрд┐ рдереЛрдбрд╝реА рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдИ рд╣реИ, 5 рд╕реЗ 25% рдХреЗ рдмреАрдЪ - рдлрд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдн рдЕрдзрд┐рдХ рдерд╛ред



рддреНрд╡рд░рд┐рдд рдирд┐рд░реНрдорд╛рдг рдиреЗ рдореБрдЭреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рджрд┐рдпрд╛ред рд╕реА ++ рдФрд░ рдбреА рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рд╕рдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рдЕрдВрддрд░ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред



C ++ рддреЗрдЬ рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди C ++ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢реЛрд░ рд╣реЛрддрд╛ рд╣реИред рдЕрд╕реЗрдВрдмрд▓реА рдХреА рджреАрдХреНрд╖рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕рдорд╛рд░реЛрд╣ рдФрд░ рдзреВрдордзрд╛рдо рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ ("рдкреАрдЫреЗ, рджреЛрд╕реНрддреЛрдВ, рдХрд┐рдХрдмреИрдХ рд╕рдВрднрд╡ рд╣реИ!") рдФрд░ рджрд┐рди рдХреЗ рджреМрд░рд╛рди рдореИрдВ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЕрдзрд┐рдХрддрдо рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реВрдВрдЧрд╛ред рдбреА рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрдХреНрд░ рдЬрд▓реНрджреА рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрднреА-рдХрднреА рдЖрдХреНрд░рд╛рдордХ рд░реВрдк рд╕реЗред рдЬрд┐рд╕ рд╕рд╛рджрдЧреА рдХреЗ рд╕рд╛рде рдбреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЙрд╕рдиреЗ рдореБрдЭреЗ рдкрд╣рд▓реЗ рддреЛ рдЪреМрдВрдХрд╛ рджрд┐рдпрд╛, рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рднреА рд╕рдВрджреЗрд╣ рд╣реБрдЖ - рдХрд┐ рдореЗрд░рд╛ рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирдИ рднрд╛рд╖рд╛ рд╕рд░рд▓рддрд╛ рд╕реЗ рдЙрдЪреНрдЪ рдЧрддрд┐ рдкрд░ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЗрд╣рддрд░ рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред



рдЪрдХрдордХ рдЬрд╛рдБрдЪ



рдкреНрд░рддреНрдпреЗрдХ рдЪреЗрдХ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЪреЗрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

  1. рдЯреЛрдХрди рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ (checkBlacklistedSequences)ред рдХреБрдЫ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕рдВрдЧрдарди рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖рд┐рджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлреЗрд╕рдмреБрдХ рдкрд░, рд╣рдо "рд╡рд╛рд╖реНрдкрд╢реАрд▓" рдирд┐рд╖рд┐рджреНрдз рдорд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ: рд╣рдо рдЕрдиреБрдХреНрд░рдо "рдЕрд╕реАрдо рд╡рд╛рд╖реНрдкрд╢реАрд▓" рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
  2. рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ (checkBlacklistedIdentifiers)ред рдЖрдкрдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдХреБрдЫ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдлреЗрд╕рдмреБрдХ рдкрд░, рд╣рдо рдХреБрдЦреНрдпрд╛рдд рд╕реА рднрд╛рд╖рд╛ рд╕рдорд╛рд░реЛрд╣, рд╕реНрдЯреНрд░реЗрдЯреЛрдХ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреНрд░реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
  3. рдЖрд░рдХреНрд╖рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (checkDefinedNames)ред C рдФрд░ C ++ рджреЛрдиреЛрдВ рдореЗрдВ, рдЕрдХреНрд╕рд░ рднреВрд▓ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╛рдордХрд░рдг рдирд┐рдпрдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдФрд░ рдмрд╛рдж рдХреЗ рдХреИрдкрд┐рдЯрд▓ рд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред (рдмреЗрд╢рдХ, рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдЗрд╕ рдирд┐рдпрдо рдХреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ _GNU_SOURCE рдпрд╛ _XOPEN_SOURCE, рдЗрд╕рд▓рд┐рдП рдлрд╝реНрд▓рд┐рдВрдЯ рднреА рдЖрд░рдХреНрд╖рд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред
  4. рдЧрд╛рд░реНрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдореБрд╣рд╛рд╡рд░реЗ (checkIncludeGuard)ред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (#pragma рдХрд╛ рдПрдХ рдмрд╛рд░ рдпрд╛ #ifndef рдореИрдХреНрд░реЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рд╛ред
  5. рд╢реБрд░реБрдЖрдд рдореЗрдВ рддрд░реНрдХреЛрдВ рдХрд╛ рдХреНрд░рдо (checkMemset)ред рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рдиреЗ рдХрднреА-рдХрднреА рдореЗрдорд╕реЗрдЯ (& рдлреВ, рд╕рд╛рдЗрдЬрд╝реЛрдлрд╝ (рдлреВ), 0) рд▓рд┐рдЦрд╛; рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрдпрд╛рдирдХ рдХрд╣рд╛рдирд┐рдпрд╛рдВ рд╕реБрдирд╛рдИрдВ, рдЬреЛ рд╣реЗрд▓реЛрд╡реАрди рдкрд░ рднрддреАрдЬреЛрдВ рдХреЛ рдбрд░рд╛рддрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЪрдХрдордХ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо рдЗрд╕ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред
  6. рд╕рдВрджреЗрд╣рдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ (#include) - checkQuestionableIncludesред рдХрдИ рд╕рдВрдЧрдарди рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХрднреА рднреА рдирдП рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдРрд╕реЗ рд╣реЗрдбрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдоред рдлреЗрд╕рдмреБрдХ рдкрд░ рд╣рдореЗрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рдорд┐рд▓реАрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдереА рдХрд┐ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмрд╛рдж рдХреБрдЫ рд╣реЗрдбрд░ рджреВрд╕рд░реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реЛ рдЧрдП - рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрдХрд▓рди рд╕рдордп рд╣реЛ рдЧрдпрд╛ред рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд▓рд┐рдВрдЯ рд╕рд┐рдЦрд╛рдирд╛ рдерд╛ред
  7. рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ "...- inl.h" рдлрд╛рдЗрд▓реЗрдВ (checkInlHeaderInclusions)ред рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рднрд╛рд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХрд╛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдирд▓рд╛рдЗрди рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Widget.h Widget-inl.h рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ "рд╡рд┐рдЬреЗрдЯ" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдЗрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИред
  8. рдЪрд░ рдХреЛ рд╣реА рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ (checkInitializeFromItself)ред рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд▓реЛрдЧ рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдорд╛рддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

    class X { .. int a_; X(const X& rhs) : a_(a_) {} X(int a) : a_(a_) {} };
          
          





    рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ a_ (rhs.a_) рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ a_ (a) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдФрд░ рд╡рд░реНрддрдиреА рд▓рдЧрднрдЧ рдХрднреА рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рдХ рдРрд╕реЗ рдХреЛрдб рдкрд░ рдЪреБрдк рд░рд╣рддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдХрд╣рдирд╛ рдкрд╕рдВрдж рд╣реИ: "рдЬрдм рд╣рдо рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рдпрдо рд╣реЛрддрд╛ рд╣реИ"ред
  9. shared_ptr p(make_shared(args)) shared_ptr p(new T) (checkSmartPtrUsage). .

    (checkOSSIncludes). Facebook , , : . Folly, , - . . , ?

    (checkNamespaceScopedStatics). - . , . .

    "Widget.cpp" "Widget.h" - (checkIncludeAssociatedHeader). , "Widget.h" - , "Widget.h" - .

    (checkCatchByReference). 'Nuff said.

    . explicit, . , /* implicit */. , :









    рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ shared_ptr p(make_shared(args)) shared_ptr p(new T) (checkSmartPtrUsage). .

    (checkOSSIncludes). Facebook , , : . Folly, , - . . , ?

    (checkNamespaceScopedStatics). - . , . .

    "Widget.cpp" "Widget.h" - (checkIncludeAssociatedHeader). , "Widget.h" - , "Widget.h" - .

    (checkCatchByReference). 'Nuff said.

    . explicit, . , /* implicit */. , :









    shared_ptr p(make_shared(args)) shared_ptr p(new T) (checkSmartPtrUsage).



    .

    (checkOSSIncludes). Facebook , , : . Folly, , - . . , ?

    (checkNamespaceScopedStatics). - . , . .

    "Widget.cpp" "Widget.h" - (checkIncludeAssociatedHeader). , "Widget.h" - , "Widget.h" - .

    (checkCatchByReference). 'Nuff said.

    . explicit, . , /* implicit */. , :





     class C { ... //  ,     C(int a) C(const C&&); //  ,    explicit C(int a); /* implicit */ C(char* a); C(int a, double b); };
          
          





    рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдВ (checkThrowSpecification)ред рдлреЗрдВрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЛрдб рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрдХрдордХ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рд╡рд░реНрдЧ рдЬреЛ std рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ :: рдЕрдкрд╡рд╛рдж рдХреЛ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдереНрд░реЛ () рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреНрдпрд╛ () рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

    рдирдП (checkThrowsHeapException) рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдпрд╣ рдПрдВрдЯреАрдкрд╛рд░реНрдЯрд░реНрди рдереНрд░реЛ рдХреЛ рдирдпрд╛ T рд░реЛрдХрддрд╛ рд╣реИред

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

    рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЛрдВ (checkUsingDirectives) рдореЗрдВ рдирд╛рдо рд╕реНрдерд╛рдиред "рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рд╣реЗрдбрд░ рдХреЗ рдЕрдВрджрд░ рдХрднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлреЗрд╕рдмреБрдХ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

    рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ (checkFollyDetail)ред "рд╡рд┐рд╕реНрддрд╛рд░" рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рдХреЛрдб рд░рдЦрдирд╛ рдПрдХ рдЖрдо рдмрд╛рдд рд╣реИред C ++ рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рдХрд╛рд░рдг рдХрднреА-рдХрднреА рдРрд╕реЗ рдХреЛрдб рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлреНрд▓рд┐рдВрдЯ рдРрд╕реЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг :: рд╡рд┐рд╡рд░рдг" рдХреА рд╢реИрд▓реА рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

    рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ "рд╕рд╕реНрддреЗ" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ (checkFollyStringPhewByValue)ред рдХреБрдЫ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕реЗ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдпрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдФрд░ рд╕рд╕реНрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╡реЗ рдирд┐рд░рдВрддрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдп рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлреЛрд▓рд┐ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧрдкрд╛рдЗрд░ рд╣реИ, рдЬреЛ рджреЛ рд╢рдмреНрджреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕рд░рд▓ рдирдХрд▓ рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рд╣реИред

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

    рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдХреЛрдИ рдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг (checkImplicitCast)ред рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЕрд╡реИрдз рд░реВрдк рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдЙрддрдирд╛ рд╣реА рдЦрддрд░рдирд╛рдХ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд░реВрдкрд╛рдВрддрд░рдг:

     class C { //  ,     operator string(); operator bool(); //  ,    /* implicit */ operator string(); explicit operator bool(); };
          
          





    рдЦрд░рд╛рдм рдФрд░ рдЕрдкреНрд░рдЪрд▓рд┐рдд NULL рдХреЛ рд╕рднреА рдЬрдЧрд╣ nullptr (checkUpcaseNull) рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ std :: рдЕрдкрд╡рд╛рдж рд╣рдореЗрд╢рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ (checkExceptionInheritance)ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ:

     class MyException : std::exception { ... };
          
          





    рд▓реЗрдЦрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ред рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдирд┐рдЬреА рд╣реЛрдЧреАред рдЕрдВрдд рдореЗрдВ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдб рдЬреЛ рд╕рднреА рдорд╛рдирдХ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП - рдкрдХрдбрд╝ (рдХрд╛рд╕реНрдЯ std :: рдЕрдкрд╡рд╛рдж &), рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдЬреА рд╡рд┐рд░рд╛рд╕рдд рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрдХрдордХ рд╕реНрдЯреИрдЯрд┐рдХ :: рдЕрдкрд╡рд╛рдж 25 рд╕реЗ рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред

    "рдХреНрд╖рдгрднрдВрдЧреБрд░" рд░рдирд╡реЗ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЬреЛ рдХрднреА-рдХрднреА рдмреЗрдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ (checkMutexHolderHasName)ред рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: mutex m_lock; ... lock_guard (m_lock); рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдХреЛрдб рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдХреЗрд╡рд▓ lock_guard рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИред , рдЬреЛ рдХреНрд▓реЛрдЬрд┐рдВрдЧ рдмреНрд░реИрдХреЗрдЯ рдФрд░ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЗ рдмреАрдЪ рд░рд╣реЗрдЧрд╛ред рдХрд╛рд░реНрдореИрдХ рд▓реЙ рдХреА рдкреБрд╖реНрдЯрд┐ рдореЗрдВ ("рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рд░реВрдк рд╕реЗ рд╕рд╣реА рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХреА рдЧрдИ рд╣рд░ рдЪреАрдЬ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧреА") рдЖрдкрдХреЛ рдирд┐рдпрдореЛрдВ рдХреЛ рддрд╛рдХ рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗред рдЗрд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░.рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрджрд┐рдЧреНрдз рд╕реНрдерд╛рдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВред





    рдЪрдХрдордХ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛



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



    рдзрдиреНрдпрд╡рд╛рдж



    рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╢реБрд░реБрдЖрддреА рдорд╕реМрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХреЛрд▓рд╕ рдУрд░рдореНрд░реЙрдб рдФрд░ рд░реЛрдмрд░реНрдЯ рд╣рд░рдорди рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдмрд╣реБрдд рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдиреЗ рдЙрди рд╕рднреА рдХреЛ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдХрдордХ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ; рдЙрдирдХреЗ рдпреЛрдЧрджрд╛рди рдХреЛ рдЧрд┐рдЯ рд▓реЙрдЧ рдореЗрдВ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



    рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ
    C ++ рд╣рдм рдореЗрдВ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рд╣реИрдВ - рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рдкреАрд╡реАрдПрд╕ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ CppCat рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИрдВред рдЬрдм рдлреЗрд╕рдмреБрдХ рдиреЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рддреЛ рдпрд╣ рдЦрдмрд░ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЧрдИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░реЗрд╕реНрдХреБ рдХреЗ рд▓реЗрдЦ рдХреЛ рд╕рдордЭрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрдард┐рди рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрднреА рднреА рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЧрд▓рддрд┐рдпрд╛рдБ рдФрд░ рдЕрдЬреАрдм рдЬрдЧрд╣ рд╣реИрдВ - рдФрд░ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЖрднрд╛рд░реА рд░рд╣реВрдБрдЧрд╛ рдЬреЛ рдЗрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ 16 рд╡реЗрдВ рдирд┐рдпрдо рдХреЛ рд╕рдордЭрд╛ - рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрддреНрд░рд╛рдЪрд╛рд░ рдореЗрдВ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ - рдореИрдВ рдЗрд╕реЗ рд▓реЗрдЦ рдореЗрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

    рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдордд рдпрд╣ рд╣реИ рдХрд┐ рдЪрдХрдордХ рдкрддреНрдерд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЗрдЦрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рд╢реИрд▓реА рдФрд░ рдирд┐рдпрдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ CppCheck рдФрд░ Viva64 рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рджреЛрдиреЛрдВ рд╕реЗ рдиреАрдЪ рд╣реИред рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ - рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд┐рд╕реА рднреА рдХреЛрдб (рд╣реЗрдбрд░реНрд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХреЗ рдЖрджреЗрд╢) рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ: рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдмрд╛рд╣рд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЦреБрд▓реЗ рдЕрд░реНрде рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдордирд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред



    рдореИрдВ рдбреА рднрд╛рд╖рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рдЪрдХрдордХ рдкрддреНрдерд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЦреИрд░, рдореМрдЬреВрджрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЙрддреНрдкрд╛рдж рдХреА рддреБрд▓рдирд╛, рдирд┐рдпрдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ - рд╣рдо рдПрдХ рдЗрдЪреНрдЫреБрдХ рд▓реЗрдЦрдХ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!



All Articles