рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп...рднрд╛рдЧ 9. рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБрднрд╛рдЧ 10. рдкреНрд░рд╛рд░реВрдкрдг...
рдпрд╣ рдЖрд▓реЗрдЦ Google рд╢реИрд▓реА рдЧрд╛рдЗрдб рдХреЗ рднрд╛рдЧ рдХрд╛ C ++ рдореЗрдВ рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╣реИредрдореВрд▓ рд▓реЗрдЦ (рдЬреАрдереБрдм рдкрд░ рдХрд╛рдВрдЯрд╛), рдЕрджреНрдпрддрди рдЕрдиреБрд╡рд╛рдж редрдХрд╛ рдкреНрд░рд╛рд░реВрдкрдг
рдХреЛрдбрд┐рдВрдЧ рдФрд░ рд╕реНрд╡рд░реВрдкрдг рд╢реИрд▓реА рдордирдорд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдЕрдЧрд░ рд╣рд░ рдХреЛрдИ рдПрдХ рд╣реА рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреЛрдИ рднреА рд╕рднреА рдирд┐рдпрдореЛрдВ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрдб рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИредрд╕рд╣реА рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ emacs рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ редрд░реЗрдЦрд╛ рд▓рдВрдмрд╛рдИ
рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ 80 рд╡рд░реНрдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИредрдпрд╣ рдирд┐рдпрдо рдереЛрдбрд╝рд╛ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рдереЛрдХ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдпрдордХреЗрдкрд╛рд▓рди тАЛтАЛрдХреЗ рд▓рд┐рдП, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдердХрд╛рдК рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕реНрдерд╛рди рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдХреЛрдб рд╡рд╛рд▓реА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдФрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, 80 рдЕрдХреНрд╖рд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдорд╛рдирдХ, рдЗрд╕реЗ рдХреНрдпреЛрдВ рдмрджрд▓реЗрдВ? .. рд╣реИрдХреЗ рдЦрд┐рд▓рд╛рдлрджреВрд╕рд░реЗ рдкрдХреНрд╖ рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 80 рдЕрдХреНрд╖рд░ 1960 рдХреЗ рджрд╢рдХ рдХреЗ рдореЗрдирдлреНрд░реЗрдо рдХрд╛ рдЕрд╡рд╢реЗрд╖ рд╣реИред рдЖрдзреБрдирд┐рдХ рд╕реНрдХреНрд░реАрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рдВрдмреА рд▓рд╛рдЗрдиреЗрдВ рджрд┐рдЦрд╛ рд╕рдХрддреА рд╣реИрдВред 80 рд╡рд░реНрдгреЛрдВ рдХрд╛рдПрдХ рдирд┐рд░реНрдгрдпрдЕрдзрд┐рдХрддрдо рд╣реЛрддрд╛ рд╣реИредрдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ 80 рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐:- . , URL-, 80 .
- /, 80 . , .
- include.
- using
-ASCII
рдЧреИрд░-рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдпреВрдЯреАрдПрдл -8 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА) рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреИрд░-рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдЕрдХреНрд╖рд░ рджреБрд░реНрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдб рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ (рдЧреИрд░-рдЕрдВрдЧреНрд░реЗрдЬреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдореЗрдВ рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕реАрдорд╛рдВрдХрдХ рд╢рдмреНрджреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЛрдб рдореЗрдВ рд░рд╛рд╖реНрдЯреНрд░реАрдп рддрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, UTF-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рди рдХреЗрд╡рд▓ ASCII рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ)редрд╣реЗрдХреНрд╕ рднреА рдорд╛рдиреНрдп рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "\ xEF \ xBB \ xBF" рдпрд╛ u8 "\ uFEFF"- рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рд╢реВрдиреНрдп рд▓рдВрдмрд╛рдИ рдХрд╛ рдПрдХ рдЕрдЯреВрдЯ рд╕реНрдерд╛рди, рдФрд░ рдЬрд┐рд╕реЗ рд╕рд╣реА UTF-8 рдкрд╛рда рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред U8рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ \ uXXXX рдЬреИрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ UTF-8 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реЛрдВред рдпреВрдЯреАрдПрдл -8 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдПрдирдХреЛрдб рдХрд┐рдП рдЧрдП рдЧреИрд░-рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдЕрдХреНрд╖рд░реЛрдВ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ - рдпрджрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рддреЛ рдЖрдк рдЕрдирд╛рдбрд╝реА рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╕реА ++ 11 рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ char16_t рдФрд░ char32_t рд╡рд░реНрдг рдХреЗ рдмрд╛рдж рд╕реЗ рд╡реЗ рдЧреИрд░-рдпреВрдЯреАрдПрдл -8 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдПрдХ рд╣реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ wchar_t (рдЬрдм рд╡рд┐рдВрдбреЛрдЬ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ wchar_t )редрд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдмрдирд╛рдо рдЯреИрдм
рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдХ рдЗрдВрдбреЗрдВрдЯ рдХреЗ рд▓рд┐рдП 2 рд╕реНрдерд╛рдиредрд╣рдо рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ - рдЯреИрдм рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВредрд╕рдорд╛рд░реЛрд╣ рдХреА рдШреЛрд╖рдгрд╛рдПрдБ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ (рдпрджрд┐ рд╕рдм рдХреБрдЫ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ)ред рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рддрд░реНрдХ рдХреА рддрд░рд╣, рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рддреЛрдбрд╝ рджреЗрдВредрд╕рд╣реА рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {
DoSomething();
...
}
рдпрджрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ:ReturnType ClassName::ReallyLongFunctionName(Type par_name1, Type par_name2,
Type par_name3) {
DoSomething();
...
}
рдпрд╛, рдпрджрд┐ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рднреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ:ReturnType LongClassName::ReallyReallyReallyLongFunctionName(
Type par_name1,
Type par_name2,
Type par_name3) {
DoSomething();
...
}
рдХреБрдЫ рдиреЛрдЯ:- рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдирд╛рдо рдЪреБрдиреЗрдВред
- рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
- , , . .
- .
- .
- .
- . .
- , , .
- .
- .
- тАФ 2 .
- рдЬрдм рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЗрдВрдбреЗрдВрдЯ рдХрд░реЗрдВред
рдпрджрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЕрдкреНрд░рдпреБрдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:class Foo {
public:
Foo(const Foo&) = delete;
Foo& operator=(const Foo&) = delete;
};
рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╕рдВрджрд░реНрдн рд╡рд╛рд▓реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:class Shape {
public:
virtual void Rotate(double radians) = 0;
};
class Circle : public Shape {
public:
void Rotate(double radians) override;
};
void Circle::Rotate(double ) {}
void Circle::Rotate(double) {}
рд╡рд┐рдЬреНрдЮрд╛рдкрди рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ,рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рдкреНрд░рдХрд╛рд░ рддрдХ:ABSL_MUST_USE_RESULT bool IsOk();
lambdas
рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╢рд░реАрд░ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ, рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдЪрд░ рдХреА рд╕реВрдЪреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдХреА рддрд░рд╣ рд╣реИредрд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЪрд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдореНрдкрд░рд╕реЗрдВрдб (&) рдФрд░ рдЪрд░ рдирд╛рдо рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдерд╛рди рди рд░рдЦреЗрдВредint x = 0;
auto x_plus_n = [&x](int n) -> int { return x + n; }
рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдШреБ рд▓рдВрдмреЛрджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредstd::set<int> blacklist = {7, 8, 9};
std::vector<int> digits = {3, 9, 1, 8, 4, 7, 1};
digits.erase(std::remove_if(digits.begin(), digits.end(), [&blacklist](int i) {
return blacklist.find(i) != blacklist.end();
}),
digits.end());
рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛рдПрдВ
рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рд╣рдореЗрд╢рд╛ рдПрдХ рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдФрд░ рдЗрд╕рдХреЗ рджреЛрдиреЛрдВ рдУрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдШрд╛рддреАрдп рд╕рдВрдХреЗрддрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА)ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛: рд╕рднреА рдЪрд▓ рдмрд┐рдиреНрджреБ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛, рдЖрдк рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╡рд░реНрдг рдИ рдХреЗ рдИ рдШрд╛рддреАрдп рд╕рдВрдХреЗрддрди рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдВрдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдШрд╛рддреАрдп рд╕рдВрдХреЗрддрди рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдирд╣реАрдВ рд╣реИредfloat f = 1.f;
long double ld = -.5L;
double d = 1248e6;
float f = 1.0f;
float f2 = 1;
long double ld = -0.5L;
double d = 1248.0e6;
рдлрдВрдХреНрд╢рди рдХреЙрд▓
рдпрд╛ рддреЛ рдкреВрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдпрд╛ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рддрд░реНрдХ рд░рдЦреЗрдВред рдФрд░ рдЗрдВрдбреЗрдВрдЯ рдпрд╛ рддреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ 4 рд╕реНрдерд╛рдиреЛрдВ рдкрд░ред рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрди рдкрд░ рдХреБрдЫ рддрд░реНрдХ рд░рдЦреЗрдВредрдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкреНрд░рд╛рд░реВрдк:bool result = DoSomething(argument1, argument2, argument3);
рдпрджрд┐ рддрд░реНрдХ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рдкрдВрдХреНрддрд┐ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЧрдардмрдВрдзрди рдХреА рдЬрд╛рддреА рд╣реИред рдХреЛрд╖реНрдардХ рдФрд░ рддрд░реНрдХреЛрдВ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рди рдЬреЛрдбрд╝реЗрдВ:bool result = DoSomething(averyveryveryverylongargument1,
argument2, argument3);
рдЗрд╕реЗ 4 рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЗрдВрдбреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рддрд░реНрдХ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ:if (...) {
...
...
if (...) {
bool result = DoSomething(
argument1, argument2,
argument3, argument4);
...
}
рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдХрдИ рддрд░реНрдХреЛрдВ рдХреЛ рдЬрдЧрд╣ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдкреНрд░рддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░реЗрдВ (рдпрджрд┐ рдпрд╣ рдкрдардиреАрдпрддрд╛ рдХреЛ рдЦрд╝рд░рд╛рдм рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рдХреБрдЫ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдПрдХ рддрд░реНрдХ рдкрд░ рд╕рдЦреНрддреА рд╕реЗ рдкреНрд░рд╛рд░реВрдкрдг рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реИ рдФрд░ рд╕рдВрдкрд╛рджрди рддрд░реНрдХреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рд░реАрдбрд░ (рд╕рдВрдкрд╛рджрди рдирд╣реАрдВ) рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредрдпрджрд┐ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдкрд░ рдХрдИ рддрд░реНрдХ рдкрдардиреАрдпрддрд╛ (рднрд╛рд╡реЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдпрд╛ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг) рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП "рдмреЛрд▓рдиреЗ" рд╡рд╛рд▓реЗ рдЪрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:int my_heuristic = scores[x] * y + bases[x];
bool result = DoSomething(my_heuristic, x, y, z);
рдпрд╛ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рд░рдЦреЗрдВ рдФрд░ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ:bool result = DoSomething(scores[x] * y + bases[x],
x, y, z);
рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рдЕрднреА рднреА рддрд░реНрдХ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд░рдЦрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ - рдЗрд╕реЗ рдЬрдЧрд╣ рджреЗрдВред рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрддрд░реНрдХ рдХрднреА-рдХрднреА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрд░реНрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ:
my_widget.Transform(x1, x2, x3,
y1, y2, y3,
z1, z2, z3);
рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реВрдЪреА рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВредрдпрджрд┐ рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕реВрдЪреА рдирд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдЪрд░ рдХрд╛ рдирд╛рдо) рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИ, рддреЛ рдкреНрд░рд╛рд░реВрдк {} рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдерд╛ред рдпрджрд┐ рдХреЛрдИ рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рддреЛ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЦрд╛рд▓реА рд╣реИред
return {foo, bar};
functioncall({foo, bar});
std::pair<int, int> p{foo, bar};
SomeFunction(
{"assume a zero-length name before {"},
some_other_function_parameter);
SomeType variable{
some, other, values,
{"assume a zero-length name before {"},
SomeOtherType{
"Very long string requiring the surrounding breaks.",
some, other values},
SomeOtherType{"Slightly shorter string",
some, other, values}};
SomeType variable{
"This is too long to fit all in one line"};
MyType m = {
superlongvariablename1,
superlongvariablename2,
{short, interior, list},
{interiorwrappinglist,
interiorwrappinglist2}};
рд╢рд░реНрддреЗрдБ
рдХреЛрд╖реНрдардХ рдХреЗ рдЕрдВрджрд░ рдкрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕рдореНрдорд┐рд▓рд┐рдд рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдкреНрд▓реЗрд╕ рдпрджрд┐ рдФрд░ рдХрд┐рд╕реА рдФрд░ рдЕрд▓рдЧ рд▓рд╛рдЗрдиреЛрдВ рдкрд░редрд╕реНрд╡рд░реВрдкрдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдПрдХ рдХреЛрд╖реНрдардХ рдФрд░ рдПрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредрд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрд┐рдирд╛ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдкред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдпрджрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рдореЗрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдирдпрд╛ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд░рд╣ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ, рддреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рди рдЬреЛрдбрд╝реЗрдВредif (condition) {
...
} else if (...) {
...
} else {
...
}
рдпрджрд┐ рдПрдХ рдЕрдВрддрд░рд┐рдХреНрд╖ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:if ( condition ) {
...
} else {
...
}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрджрд┐ рдФрд░ рдЙрджреНрдШрд╛рдЯрди рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдЖрдкрдХреЛ рд╕рдорд╛рдкрди рдмреНрд░реИрдХреЗрдЯ рдФрд░ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ (рдпрджрд┐ рд╡рд╣рд╛рдБ рдПрдХ рд╣реИ) рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредif(condition) {
if (condition){
if(condition){
if (condition) {
рдпрджрд┐ рдпрд╣ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рдШреБ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд░реЗрдВ рдЬрдм рд░реЗрдЦрд╛ рдЫреЛрдЯреА рд╣реЛ рдФрд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреЛрдИ рджреВрд╕рд░рд╛ рдЦрдВрдб рди рд╣реЛ редif (x == kFoo) return new Foo();
if (x == kBar) return new Bar();
рдпрджрд┐ рджреВрд╕рд░рд╛ рдЦрдВрдб рд╣реИ, рддреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ :
if (x) DoThis();
else DoThat();
рдЖрдорддреМрд░ рдкрд░ рдЫреЛрдЯреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдпрд╛ рдХреЛрдб рдХреЛ рднреА рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдЧрд░ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рд╣реЛредif (condition)
DoSomething();
if (condition) {
DoSomething();
}
рдФрд░ рдЕрдЧрд░ рд╣рд╛рд▓рдд рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреЗ рд╕рд╛рде рджреВрд╕рд░рд╛ рднреА рдЬрд╛рд░реА рдХрд░реЗрдВ:
if (condition) {
foo;
} else
bar;
if (condition)
foo;
else {
bar;
}
if (condition) {
foo;
} else {
bar;
}
рд▓реВрдк рдФрд░ рд╕реНрд╡рд┐рдЪ
рд╕реНрд╡рд┐рдЪ рдирд┐рд░реНрдорд╛рдг рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдЧреИрд░-рддреБрдЪреНрдЫ рдмрджрд▓рд╛рд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдПрдХрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЫреЛрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░реИрдХреЗрдЯ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред рдЦрд╛рд▓реА рд▓реВрдк рдХреЛ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рдпрд╛ рддреЛ рдЦрд╛рд▓реА рд╢рд░реАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП ред рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдорд╛рдорд▓рд╛рдмреНрд▓реЙрдХ рдпрд╛ рддреЛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЙрдирдХреЗ рдмрд┐рдирд╛ (рдЖрдкрдХреА рдкрд╕рдВрдж рдХрд╛)ред рдпрджрд┐ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрднрд╛рдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╕рднреА рдорд╛рди рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрднрд╛рдЧ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:switch (var) {
case 0: {
...
break;
}
case 1: {
...
break;
}
default: {
assert(false);
}
}
рдПрдХ рд▓реЗрдмрд▓ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЛ рдореИрдХреНрд░реЛ ABSL_FALLTHROUGH_INTENDED рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ; ( рдЕрдиреБрдкрд╕реНрдерд┐рдд / рдЖрдзрд╛рд░ / macros.h рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд )редрдЬрдЧрд╣ ABSL_FALLTHROUGH_INTENDED; рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЬрд╣рд╛рдВ рд╕рдВрдХреНрд░рдордг рд╣реЛрдЧрд╛ред рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдЕрдкрд╡рд╛рдж рдПрдХ рдХреЛрдб рдХреЗ рдмрд┐рдирд╛ рд▓рдЧрд╛рддрд╛рд░ рд▓реЗрдмрд▓ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредswitch (x) {
case 41:
case 43:
if (dont_be_picky) {
ABSL_FALLTHROUGH_INTENDED;
} else {
CloseButNoCigar();
break;
}
case 42:
DoSomethingSpecial();
ABSL_FALLTHROUGH_INTENDED;
default:
DoSomethingGeneric();
break;
}
рдПрдХрд▓-рдСрдкрд░реЗрд╢рди рд▓реВрдк рдХреЗ рд▓рд┐рдП рдмреНрд░реИрдХреЗрдЯ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВредfor (int i = 0; i < kSomeNumber; ++i)
printf("I love you\n");
for (int i = 0; i < kSomeNumber; ++i) {
printf("I take it back\n");
}
рдПрдХ рдЦрд╛рд▓реА рд▓реВрдк рдХреЛ рдмреНрд░реИрдХреЗрдЯ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдПрдХ рднреА рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВредwhile (condition) {
}
for (int i = 0; i < kSomeNumber; ++i) {}
while (condition) continue;
while (condition);
рд╕рдВрдХреЗрдд рдФрд░ рд▓рд┐рдВрдХ
рдЪрд╛рд░реЛрдВ рдУрд░ 'ред' рдФрд░ '->' рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рди рдбрд╛рд▓реЗрдВред рдбреЗрд░реЗрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ рдпрд╛ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ рдмрд┐рдирд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрд╕рдВрдХреЗрдд рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЙрдЪрд┐рдд рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:x = *p;
p = &x;
x = r.y;
x = r->y;
рдзреНрдпрд╛рди рджреЗрдВ:- 'ред' рдФрд░ '->' рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- * рдпрд╛ & рдСрдкрд░реЗрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рдЪрд░ рдпрд╛ рддрд░реНрдХ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЯрд╛рдЗрдк рдФрд░ рдирд╛рдо рджреЛрдиреЛрдВ рдкрд░ '*' рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
char *c;
const std::string &str;
char* c;
const std::string& str;
рдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрд▓ рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ; рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд╡рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдЗрд╕реЗ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдХреЗрдд рдпрд╛ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдХрдИ рдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ - рдпрд╣ рдЧрд▓рдд рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
int x, y;
int x, *y;
char * c;
const std::string & str;
рддрд╛рд░реНрдХрд┐рдХ рднрд╛рд╡
рдпрджрд┐ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИ (рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ), рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдВрдб рдСрдкрд░реЗрдЯрд░ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╕рдордп рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ:if (this_one_thing > this_other_thing &&
a_third_thing == a_fourth_thing &&
yet_another && last_one) {
...
}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░) рддрд╛рдХрд┐ && рдФрд░ AND рдСрдкрд░реЗрдЯрд░ рд▓рд╛рдЗрди рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред рдпрд╣ рд╢реИрд▓реА рдЕрдХреНрд╕рд░ Google рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рд╕реНрдерд╛рди рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╖реНрдардХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди (рдЬреИрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ && рдФрд░ ~ ) рд╢рдмреНрдж рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рдФрд░ compl редрдорд╛рди рд▓реМрдЯрд╛рдПрдВ
рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕рд░рд▓ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕рдВрд▓рдЧреНрди рди рдХрд░реЗрдВ ред рд╡рд╛рдкрд╕реА exprрдореЗрдВ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ; рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕ = рдПрдХреНрд╕рдкреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ ; редreturn result;
return (some_long_condition &&
another_condition);
return (value);
return(result);
рд╡реИрд░рд┐рдПрдмрд▓реНрд╕ рдФрд░ рдПрд░рд░реНрд╕ рдХреЛ рдЖрд░рдореНрдн рдХрд░рдирд╛
рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: = , () рдпрд╛{} рдЖрдкрдХреА рдкрд╕рдВрдж рд╣реИредрдЖрдк рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ = ,() рдФрд░ {} ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╕рд╣реА рд╣реИрдВ:int x = 3;
int x(3);
int x{3};
std::string name = "Some Name";
std::string name("Some Name");
std::string name{"Some Name"};
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА {{}} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рдЬрд┐рд╕рдореЗрдВ std :: initializer_list рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ редрдХрдВрдкрд╛рдЗрд▓рд░ std :: initializer_list рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ рдЬрдм рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреА ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЦрд╛рд▓реА рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕реЗрд╕ {} рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реЛ)ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд┐рдирд╛ std :: initializer_list рдХреЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ , рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредstd::vector<int> v(100, 1);
std::vector<int> v{100, 1};
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рдХрдореА рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди) рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдк рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредint pi(3.14);
int pi{3.14};
рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢
рд╕рд╛рдЗрди # (рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдВрдХреЗрдд) рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢ рдПрдореНрдмреЗрдбреЗрдб рдХреЛрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░реНрджреЗрд╢ рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
if (lopsided_score) {
#if DISASTER_PENDING
DropEverything();
# if NOTIFY
NotifyClient();
# endif
#endif
BackToNormal();
}
if (lopsided_score) {
#if DISASTER_PENDING
DropEverything();
#endif
BackToNormal();
}
рдХрдХреНрд╖рд╛ рд╕реНрд╡рд░реВрдкрдг
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ , рд╕рдВрд░рдХреНрд╖рд┐рдд рдФрд░ рдирд┐рдЬреА ред рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдПрдХ рдЬрдЧрд╣ рд╣реИредрдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░рд╛рд░реВрдк рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ):class MyClass : public OtherClass {
public:
MyClass();
explicit MyClass(int var);
~MyClass() {}
void SomeFunction();
void SomeFunctionThatDoesNothing() {
}
void set_some_var(int var) { some_var_ = var; }
int some_var() const { return some_var_; }
private:
bool SomeInternalFunction();
int some_var_;
int some_other_var_;
};
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ:- рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдЙрд╕реА рд▓рд╛рдЗрди рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╡рд░реНрдЧ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, 80% рдХреА рд╕реАрдорд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП) рд╣реИред
- рдХреБрдВрдЬреА рд╢рдмреНрдж рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ: , рд╕рдВрд░рдХреНрд╖рд┐рдд ,: , рдФрд░ рдирд┐рдЬреА: рдПрдХ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЗрдВрдбреЗрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╡рд░реНрдб рдХреЛ рдПрдХ рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ (рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде) рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рде рд╣реА, рдЫреЛрдЯреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЗрди рдХреАрд╡рд░реНрдб рдХреЗ рдмрд╛рдж рдмреНрд▓реИрдВрдХ рд▓рд╛рдЗрди рди рдЬреЛрдбрд╝реЗрдВред
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрднрд╛рдЧ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдкреАрдЫреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рдЬреА рдЕрдиреБрднрд╛рдЧ ред
- рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдШреЛрд╖рдгрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЗрдЦреЗрдВред
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд▓рд┐рд╕реНрдЯ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдпрд╛ 4 рд╕реНрдкреЗрд╕ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╣реЛ рд╕рдХрддреА рд╣реИредрдЖрд░рдВрднрд┐рдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:
MyClass::MyClass(int var) : some_var_(var) {
DoSomething();
}
MyClass::MyClass(int var)
: some_var_(var), some_other_var_(var + 1) {
DoSomething();
}
MyClass::MyClass(int var)
: some_var_(var),
some_other_var_(var + 1) {
DoSomething();
}
MyClass::MyClass(int var)
: some_var_(var) {}
рд╕реНрд╡рд░реВрдкрдг рдирд╛рдорд╕реНрдерд╛рди
рдиреЗрдорд╕реНрдкреЗрд╕ рдХрдВрдЯреЗрдВрдЯ рдЗрдВрдбреЗрдВрдЯ рд╣реИредрдирд╛рдо рд╕реНрдерд╛рди рдЧрджреНрджреА рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:namespace {
void foo() {
...
}
}
рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдЗрдВрдбреЗрдВрдЯ рди рдХрд░реЗрдВ:namespace {
void foo() {
...
}
}
рдиреЗрд╕реНрдЯреЗрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рдгрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд░рдЦреЗрдВредnamespace foo {
namespace bar {
рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рдЦрдВрдбрди
рдЙрдкрдпреБрдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд╖реИрддрд┐рдЬ рдЯреВрдЯрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрднреА рди рдЬреЛрдбрд╝реЗрдВредрд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд
void f(bool b) {
...
int i = 0;
int x[] = { 0 };
int x[] = {0};
class Foo : public Bar {
public:
Foo(int b) : Bar(), baz_(b) {}
void Reset() { baz_ = 0; }
...
рд╕реАрдорд╛рдВрдХрдХ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЬреЛрдбрд╝рдирд╛ рдХреЛрдб рд╡рд┐рд▓рдп рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП: рдореМрдЬреВрджрд╛ рдХреЛрдб рдореЗрдВ рдЬреБрджрд╛рдИ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рди рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд░рд┐рдХреНрддрд┐рдпрд╛рдБ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВ (рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рди рдХрд░реЗ)редрдЪрдХреНрд░ рдФрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдБ
if (b) {
} else {
}
while (test) {}
switch (i) {
for (int i = 0; i < 5; ++i) {
switch ( i ) {
if ( test ) {
for ( int i = 0; i < 5; ++i ) {
for ( ; i < 5 ; ++i) {
...
for (auto x : counts) {
...
}
switch (i) {
case 1:
...
case 2: break;
рдСрдкрд░реЗрдЯрд░реНрд╕
x = 0;
v = w * x + y / z;
v = w*x + y/z;
v = w * (x + z);
x = -5;
++x;
if (x && !y)
...
рдкреИрдЯрд░реНрди рдФрд░ рдХрд╛рд╕реНрдЯ
std::vector<std::string> x;
y = static_cast<char*>(x);
std::vector<char *> x;
рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЯреВрдЯрдирд╛
рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╡рд┐рднрд╛рдЬрди рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВредрдпрд╣ рдПрдХ рдирд┐рдпрдо рд╕реЗ рдЕрдзрд┐рдХ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ: рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рди рдЬреЛрдбрд╝реЗрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдмреАрдЪ 1-2 рд╕реЗ рдЕрдзрд┐рдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рди рдбрд╛рд▓реЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рди рдХрд░реЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рди рдХрд░реЗрдВ, рдФрд░ рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдПрдХ рдХреЛрдб рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдХреЛ рдПрдХ рдЙрдкрдиреНрдпрд╛рд╕ рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдиреЗрддреНрд░рд╣реАрди рджреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛редрдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд: рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдзрд┐рдХ рдХреЛрдб рдлрд┐рдЯ рд╣реЛрддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдХреНрд░рдо рдХреЛ рджреГрд╖реНрдЯрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдиреЛрдЯреНрд╕:- рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╛ рдХрд┐рд╕реА рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧреАред
- рдЕрдЧрд░-рдФрд░ рдмреНрд▓реЙрдХрдЪреЗрди рдореЗрдВ рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИрдВред
- рдЯрд┐рдкреНрдкрдгреА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ - рдПрдХ рдирдИ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкреВрд░рд╛ рд╣реЛрдирд╛ рдФрд░ рдПрдХ рдирдП рд╡рд┐рдЪрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рд╢рд╛рдорд┐рд▓ рд╣реИред рдФрд░ рдЦрд╛рд▓реА рд░реЗрдЦрд╛ рдЙрд╕ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реА рд╣реИред