рд╡рд╕рдВрдд рд╕рдореНрдореЗрд▓рди рд╕реА ++ рд░реВрд╕ 2018 рд╕реЗ рдХрд╛рдЧрдЬрд╛рдд


19 рд╕реЗ 21 рдЕрдкреНрд░реИрд▓ рддрдХ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рдореЗрдВ рд╕реА ++ рд░реВрд╕ 2018 рд╕рдореНрдореЗрд▓рди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╛рд▓ рднрд░ рд╕реЗ, рд╕рдВрдЧрдарди рдФрд░ рдЖрдЪрд░рдг рдПрдХ рд╕реНрддрд░ рдКрдВрдЪрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдирдХреЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рд╕реА ++ рд░реВрд╕ рд╕реЗрд░реНрдЧреЗрдИ рдкреНрд▓реИрдЯреЛрдиреЛрд╡ рдХреЗ рд╕реНрдерд╛рдпреА рдЖрдпреЛрдЬрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

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

рдЬреЙрди рдХрд▓реНрдмред C ++ рдЯреБрдбреЗ: рдж рдмреАрд╕реНрдЯ рдЗрдЬ рдмреИрдХ



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

рдЕрд░рдиреЛ рд╢реЙрдбрд▓ред рд░реЗрдВрдЬрд░реЛрдВ рд╕реЗ рд▓реЗрдХрд░ рд░реЗрдВрдЬрд░реНрд╕ рддрдХ



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

рдЬреЛрдирд╛рдерди рдмреЛрдХрд╛рдбрд╝рд╛ред рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдореЗрдВ 105 рдПрд╕рдЯреАрдПрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо



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

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдПрд╕рдЯреАрдПрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ?

рдЗрд╕ рд╡рд╛рд░реНрддрд╛ рдореЗрдВ, рд▓реЗрдЦрдХ рдиреЗ 105 рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрд╕рдЯреАрдПрд▓ рдХреЗ рдкрд╛рд╕ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реА ++ 11 рдФрд░ рд╕реА ++ 17 рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдЕрдзрд┐рдХ, рдЗрд╕ рдмрд╛рдд рдХрд╛ рдмрд┐рдВрджреБ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ, рдПрд╕рдЯреАрдПрд▓ рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреИрдЯрд░реНрди рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред

рдЗрд╕ рддрд░рд╣ рдХреА рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдФрд░ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЯреВрд▓рдмреЙрдХреНрд╕ рдард╕рд╛рдард╕ рднрд░рд╛ рд╣реБрдЖ рд╣реИред

рд╡рд┐рдХреНрдЯрд░ рдХрд┐рд░рд┐рд▓реЛрд╡ред рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ C ++ рд╕рдВрдХрд▓рди (REPL): рдж рд▓реАрди рд╡реЗ



рдХрднреА рдХреБрдЫ рдореВрд▓реНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХреБрдЫ рдХрдерди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рдереЗ, рдЬрдмрдХрд┐ рдЖрдкрдХрд╛ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рдХреБрдЫ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣рд╛ рд╣реИ - рдбрд┐рдмрдЧрд░ рдХреЗ рд╕рд╛рде рддреБрдЪреНрдЫ рдпрд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ? рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ REPL (рд░реАрдб-рдЗрд╡рд▓-рдкреНрд░рд┐рдВрдЯ-рд▓реВрдк) рд╣реЛрддрд╛ рд╣реИред C ++ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╛рд╕ рдХреА рдЪреАрдЬ рдХреНрд▓рд┐рдВрдЧ (CERN рдореЗрдВ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд) рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ LLVM рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рдмреЛрдЭрд┐рд▓ рд╣реИред RCRL (Read-Compile-Run-Loop) рдПрдХ рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд░рдирдЯрд╛рдЗрдо C ++ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╡реАрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдЬреНрдЮреЗрдп рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ, рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдХреНрдЯрд░ рд╕рд┐рдЙрд░рд╛ред рдЦреБрдж рдХреЛ рдлрд╛рдВрд╕реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд string_view



рдЕрдЧрд░ рд╣рдо рддрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ C ++ рдкреНрд░рдХрд╛рд░ рд╣реИ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдУрд╣, рд░реБрдХреЛ ... рд╣рдо рдХрд░рддреЗ рд╣реИрдВ: рдПрд╕рдЯреАрдбреА :: рд╕реНрдЯреНрд░рд┐рдВрдЧред рдХреНрдпрд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрд╕ рдорд╛рдирдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ? рдЦреИрд░ ... рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ! рдЬрдм рддрдХ рд╣рдо рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдРрдк рдпрд╛ рд╕реЗрд╡рд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдпрджрд┐ рд╣рдо GUI рдХреЗ рд╕рд╛рде рдХреЛрдИ рдРрдк рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЖрдзреБрдирд┐рдХ OS APIs рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдиреНрдп рдЧреИрд░-рдорд╛рдирдХ C ++ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ MFC рдпрд╛ ATL рд╕реЗ CString рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо :: WinRT рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ, Qt рд╕реЗ QString, wxWidgets рд╕реЗ wxString, рдЖрджрд┐ред рдУрд╣, рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рджреЛрд╕реНрдд рдХрд╛рд╕реНрдЯ рдЪрд╛рд░ рдХреЛ рдордд рднреВрд▓рдирд╛ *, рдПрдкреАрдЖрдИ рдХреЗ рд╕реА рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ wchar_t * ...

рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рджреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ред рдареАрдХ рд╣реИ, рдпрд╣ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реИ: рд╣рдо рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП std :: string рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо API рдпрд╛ GUI рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╕рдордп рдмреИрдХ-рдПрдВрдб рдХреЛ рдЕрдиреНрдп XString рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреБрд▓ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╕рдордп рд╣рдо рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдпреЗрдВрдЧреЗ рдФрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд░реЛрдВ рдХреЛ рдЬрдХрдбрд╝реЗ рд╣реБрдП рдХреБрдЫ рдордЬрд╝реЗрджрд╛рд░ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ; рд▓реЗрдХрд┐рди рдпрд╣ рдЧреЛрдВрдж рдХреЛрдб рд╣реИ, рд╡реИрд╕реЗ рднреА ... рд╕рд╣реА?

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдпреЛрдЬрдирд╛ рд╣реИ ... рдЬрдм рддрдХ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдврд╝рддреА рд╣реИ рдФрд░ рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╣рдо рдЙрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЛ std :: string рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд╣рдо рдЖрдо рднрд╛рдЬрдХ рдХрд╛рдВрд╕реНрдЯ рдЪрд╛рд░реНрдЬ * рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ C ++ рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА / рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ C ++ 17 std :: string_view рд╣рдорд╛рд░реА рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рд╣реИ?

рд▓реЗрдЦрдХ рдПрдХ 15 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдХреЗрд╕ рд╕реНрдЯрдбреА рдХреЗ рд╕рд╛рде, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ: рдПрдбрд╡рд╛рдВрд╕реНрдб рдЗрдВрд╕реНрдЯреЙрд▓рд░ (www.advancedinstaller.com) - рдПрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕реЗ C ++ 17 рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд▓реИрдВрдЧ-рдЯрд╛рдЗрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ "рдХреНрд▓реЗрдВрдЧ рдкрд╛рд╡рд░ рдЯреВрд▓реНрд╕" ( www.clangpowertools.com) ...

рдЖрдВрджреНрд░реЗрдИ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░реЗрд╕реНрдХреБред рдЙрдореНрдореАрдж рдХреА рдЙрдореНрдореАрдж рд╣реИ



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

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

рдмреЛрд░рд┐рд╕реНрд▓рд╛рд╡ рд╕реНрдЯреИрдирд┐рдореАрд░реЛрд╡ред рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕: рдкреЙрд▓рд┐рдореЛрд░реНрдлрд┐рдЬреНрдо рдкрд░ рдПрдХ рдирдпрд╛ рд▓реЛ



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

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

рдорд┐рдЦрд╛рдЗрд▓ рдорд╛рддреГрд╕реВред рдмрд╣реБрдореБрдЦреА C ++ рд▓рд╛рдЧреВ



C ++ рдореЗрдВ, рдЖрдк рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЛ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдЦрдХ рдЙрддреНрдкрд╛рджрди рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдЪреБрдирддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ C ++ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: STL рдХрдВрдЯреЗрдирд░, boost.range, C ++ 20 рдкрд░реНрд╡рддрдорд╛рд▓рд╛, рдХреЛрд░рдЯрд╛рдЗрдиред рд╡рд╣ рдПрдкреАрдЖрдИ рдмрд╛рдзрд╛рдУрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рднреА рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдЦрдХ рдиреЗ рд░рд╛рд╕реНрддреЗ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдЙрдкрдпреЛрдЧреА C ++ 17 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреЙрдиреНрд╕реНрдЯреЗрдХреНрд╕рдкреНрд░ рдЕрдЧрд░, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЪрдпрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ, std :: not_fn, рдЖрджрд┐ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рд╡рд┐рд╖рдп - рдорд╛рдирдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдЧреНрд░реИрдирд┐рдиред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯреНрд░рд╛рдВрд╕реЗрдХреНрд╢рдирд▓ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг



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

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

рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рд▓реЗрдЦрдХ рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░рд┐рдпрд▓ рдПрд╕рдЯреАрдПрдо рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ C ++ 17 рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рджрд┐рдо рд╡рд┐рдирд┐рдХред рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред рдПрдХрд▓ рд╕рд╛рд░, рдХрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ



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

рджрд┐рдорд┐рддреНрд░реА рдмрдВрд╢реАрдХреЛрд╡ред рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп



рд▓реЗрдЦрдХ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ C ++ рдореЗрдВ рдПрдВрдЯреА-рд╡рд╛рдпрд░рд╕ рдЗрдВрдЬрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ред рдПрдХ рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ (рд░рдирдЯрд╛рдЗрдо рд╕реА ++ рдпрд╛ рд╕реА) рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╣реИред рдпрд╣ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдЬреАрд╕реАрд╕реА рдкрд░ рдПрдХ рдХрд╕реНрдЯрдо рдЯреВрд▓рдЪрд┐рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ libc newlib рдЙрд╕реА рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдКрдкрд░ libstdc ++ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╕реНрдЯрдо рдЯреВрд▓рдЪреИрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдо libgcc_s, libc, libcstdc ++ (рдХреЗрд╡рд▓ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди) рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдмреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ (RTTI, рдЕрдкрд╡рд╛рджреЛрдВ, iostream, рдЖрджрд┐) рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реНрдг рдЖрдзреБрдирд┐рдХ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ, рдЬреЛ libstdc ++ libc (newlib) рдХреЛ рдЬрд╛рддрд╛ рд╣реИред l ibgcc-ABI рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП GCC / newlib / libstdc ++ рдЯреВрд▓рдЪрд╛рдЗрдиреНрд╕ рдкрд░ рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ MacOS рдХреЗ рд▓рд┐рдП clang / newlib / libc ++ред рд░рд┐рдкреЛрд░реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдмрд░реНрджрд╛рд╢реНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдЗрд▓реНрдпрд╛ рд╢рд┐рд╢реНрдХреЛрд╡ред C ++ рднрд╛рд╖рд╛ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдПрдВ: рдХреМрд░рд╕реЗрд░рд╛ рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡



рдкрд┐рдЫрд▓реЗ рдбреЗрдврд╝ рд╕рд╛рд▓ рдореЗрдВ, рд▓реЗрдЦрдХ рдиреЗ рдЖрдзреБрдирд┐рдХ C ++ рдореЗрдВ Coursera рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдореЗрдВ рдкрд╛рдБрдЪ рдкрд╛рдареНрдпрдХреНрд░рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рджреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИред

рд░рд┐рдкреЛрд░реНрдЯ рдмрддрд╛рдПрдЧреА:

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдкрд░ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рдо рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:

  • рдПрдХ рдирдП рдХрд░реНрдордЪрд╛рд░реА рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ
  • рдХреЛрдб-рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рджреМрд░рд╛рди
  • рдЬрдм рдХрд╛рдо рдкрд░ рд░рдЦрдиреЗ

рдЗрд╕рд▓рд┐рдП, рд▓реЗрдЦрдХ рди рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╣рд░ рд░реЛрдЬрд╝ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рдЗрд╡рд╛рди рдкрд┐рдВрдбреЛрдореЗрд░реЗрд╡ред рдХреНрд░реИрд╢ Android NDK рдХреА рд░рд┐рдкреЛрд░реНрдЯ



рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ C / C ++ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред рдПрдХ рдШрд╛рддрдХ рдЧрд▓рддреА рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕реА рд╕рдордп, рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИред

рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдореМрдЬреВрджрд╛ рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ: рдмрд┐рд▓реНрдЯ-рдЗрди рдПрдВрдбреНрд░реЙрдЗрдб рдбреАрдмрдЧрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рд╣реИрдВред рджреВрд╕рд░рд╛ рднрд╛рдЧ "рд╣реВрдб рдХреЗ рдиреАрдЪреЗ" рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ: рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рдордп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛рдП, рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд▓рд╛рдЗрди рд╕рдВрдЦреНрдпрд╛ рдХреИрд╕реЗ рдкрддрд╛ рдХрд░реЗрдВред рд╕реНрдЯреИрдХ рдкреНрд░рдореЛрд╢рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдЬреИрд╕реЗ рдХрд┐ libcorkscrew, libunwind, libunwindstack рдХрд╛ рдЕрд╡рд▓реЛрдХрди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд░рд┐рдкреЛрд░реНрдЯ рджреЛрдиреЛрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рд╣реЛрдЧреА, рдЬрд┐рдирдХреЗ рдЖрд╡реЗрджрди NDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдХреЛ рдЕрдкрдиреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХреЛ рд╡реНрдпрд╛рдкрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдлреЗрдбрд░ рд╢реЙрд░реНрдЯред рдореЗрдореЛрд░реА рдПрдХрджрдо рд╕рд╣реА рдЕрдореВрд░реНрддрддрд╛ рд╣реИ



int * ptr = new int;
* рдкреАрдЯреАрдЖрд░ = 42;
ptr рд╣рдЯрд╛рдПрдВ;

рдЬрдм рдХреЛрдб рдХреА рдЗрди 3 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рд╣рдо рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрдЯрд░, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЖрдзреБрдирд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦреЗрдВрдЧреЗред

рдПрд▓реЗрдХреНрд╕реА рд╕рд▓рдорд┐рдиред рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЯрд┐рдкреНрд╕ рдПрдВрдб рдЯреНрд░рд┐рдХреНрд╕



2017 рдореЗрдВ, C ++ рдореЗрдВ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдЪреБрдирдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдирд╣реАрдВ рдЦреЛрддрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдВрдЯреЗрдирд░реЛрдВ (std :: pmr) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдореЗрдВ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝рд╛, рд╡реИрд╢реНрд╡рд┐рдХ tcmalloc рдФрд░ jemalloc рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрд░реНрдиреЗрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдЬрд┐рд╕ рдкрд░ рд╡реЗ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА "рдирд┐рдЪрд▓реА рдордВрдЬрд┐рд▓" рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ: рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдорд┐рдореАрдк рдФрд░ рдореИрдбрд╡рд┐рдЬрд╝ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡ред

рдЬрдбрд╝реА рдмреВрдЯреА рд╡рд╛рд▓рд╛ред C ++ 20 рдореЗрдВ рдирдпрд╛: рд╕реНрдкреЗрд╕рд╢рд┐рдк рдСрдкрд░реЗрдЯрд░



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

рдЕрдирд╛рд╕реНрддрд╛рд╕рд┐рдпрд╛ рдХрдЬрд╝рдХреЛрд╡рд╛ред рдЪрд▓ рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ C ++ рдХреЛрдб рдбреАрдмрдЧ рдХрд░рдирд╛



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

рдХреНрдпрд╛ рдбрд┐рдмрдЧрд░ рдХреЗ рдмрд┐рдирд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрдкреВрд░реНрдг рдХреЛрдб рдЖрдзрд╛рд░ рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЗрдХрдЯреНрдард╛ рдпрд╛ рдЪрд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╡рд╣рд╛рдБ рд╣реИ! рдПрдХреАрдХреГрдд рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг (рдЖрдИрдбреАрдИ) рдореЗрдВ рдХрд╕реНрдЯрдо рдХреЛрдб рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЬреНрдЮрд╛рди рдФрд░ рд╕рдордЭ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЙрдЪрд┐рдд рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдпреВрдЬреАрди рд▓реНрдпреВрдХрд╛рдиреЗрдЯреНрд╕ред рдХреЙрдирди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЙрдХрд░ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг



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

рдбреЗрдирд┐рд╕ рдкрд╛рдирд┐рдиред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдХ: рдПрдХ рд╡рд┐рд╖рдо рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рд▓рд┐рдЦрдирд╛



рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдо std :: tuple рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦреЗрдВрдЧреЗред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдХреЛ рдПрдХ рд╡рд┐рд╖рдо рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рдЖрд░рдкреАрд╕реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреНрд╖рд░рдг рдирд╣реАрдВ рд╣реИред

C ++ 17 (рд╡рд┐рд╢реЗрд╖рдХрд░, рдпрджрд┐ рдХреЙрдиреНрд╕реНрдЯреНрд░реЗрдк) рдореЗрдВ рдХрдИ рдХреЙрдиреНрд╕реНрдЯреНрд░реЗрдХреНрд╕ рдХреИрд▓рдХреБрд▓реЗрд╢рди, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдирдП рдлреАрдЪрд░реНрд╕ рд╣реЛрдВрдЧреЗред

рджрд┐рдорд┐рддреНрд░реА рд╕реЛрдХреЛрд▓реЛрд╡ред рдХреЛрдб рдкреАрдврд╝реА рдЧрд░реАрдм рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд░реВрдк рдореЗрдВ



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

рджрд╡реЗрдж рд╡рдиреНрджреЗрд╡реЛрд░реНрдбреЗред C ++ рдореЗрдВ рдкрд░рд╛рд╡рд░реНрддрдХ рдореЗрдЯрд╛рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ



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

рдбрд╛рдЗрдЯрдорд╛рд░ рдХреБрд╣рд╛рд▓ред рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрдзрд╛рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг



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

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

рд╕рд╛рдЗрдорди рдмреНрд░рд╛рдВрдб рд╕реАрдкреАрдпреВ рд╕реЗ рдЬреАрдкреАрдпреВ рддрдХ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж



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

рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡ред рдкреНрд░рднрд╛рд╡реА C ++ (Maers рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛ рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ :)



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

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

рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ ode рд╣реИ!

рдЗрд╡рд╛рди рдкреБрдЬреЗрд░реЗрд╡рд╕реНрдХреАред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ



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

рдкрд╛рд╡реЗрд▓ рдмреБрд▓рдЯреЛрд╡ред WebAssembly рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛: рдореЛрдордмрддреНрддреА рдХреЗ рд▓рд╛рдпрдХ рдЦреЗрд▓ рд╣реИ?



рд░рд┐рдкреЛрд░реНрдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ WebAssembly рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧреАред рд╣рдо рдЖрд╡реЗрджрди рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реБрдИрдВ рдФрд░ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рд╢рд╛рдорд┐рд▓ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдмрд┐рд▓реНрдб рдЖрдХрд╛рд░ рдмрдирд╛рдо asm.js.
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдХреНрд░реИрд╢ рдмрдирд╛рдПрдБред
  • VM рд╕реБрд╡рд┐рдзрд╛рдПрдБред

рджрд┐рдорд┐рддреНрд░реА рдХреЛрдЬрд╝реЗрд╡рдирд┐рдХреЛрд╡ред CMake рдиреБрдХрд╕рд╛рди рдФрд░ рдЬрд╣рд╛рдВ рд╡реЗ рд░рд╣рддреЗ рд╣реИрдВ



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

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

рд╕рд░реНрдЧреЗрдИ рд╢рдордмреАрд░ред рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╕реА ++ рдЕрдЪреНрдЫрд╛ рд╣реИ



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

  • рдЖрдкрдХреЛ C API рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ winapi, POSIX, SQLite, OpenGL, OpenSSL)
  • OOP рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рдЦрд░рд╛рдм рдХрд╛рдо рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ
  • рд╕реА-рд╕реНрдЯрд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЕрдореВрд░реНрдд рдкрд░рдд рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ
  • рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдПрдХ рдЬреВрдирд┐рдпрд░ рдХреЗ рд▓рд┐рдП рднреА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб

рдПрд╡рдЧреЗрд╕реА рдЬрд╝реНрдпреВрд╡ред C ++ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд░реНрде рдПрдкреАрдЖрдИ



рдЙрдирдХреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд░реБрдЪрд┐рдпрд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рд╣реИрдВ, рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рд╡рд╛рдЗрдкреА рдХреЗ рдХрдореНрдкрд╛рдЗрд▓рд░, рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛-рдЙрдиреНрдореБрдЦ рдЙрдкрдХрд░рдгред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдореЗрдВ рдкреВрд░реНрдг C ++ рднрд╛рд╖рд╛ рдорд╛рдирдХ (Interstron, рдорд╛рд╕реНрдХреЛ, 2000) рдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднрд╛рдЧреАрджрд╛рд░реА рд╣реИред .NET (ETH рдЬреНрдпреВрд░рд┐рдЦ, 2005) рдХреЗ рд▓рд┐рдП рдЬрд╝реЛрдиреЙрди рднрд╛рд╖рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдФрд░ рдЯрд┐рдЬрд╝реЗрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реНрд╡рд┐рдлрд╝реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ( рд╕реИрдорд╕рдВрдЧ рд░рд┐рд╕рд░реНрдЪ рдЗрдВрд╕реНрдЯреАрдЯреНрдпреВрдЯ, рдорд╛рд╕реНрдХреЛ, 2015)ред

рдЗрд╡рд╛рди ─Зuki─Зред 2020: рдПрдХ void_t рдУрдбрд┐рд╕реА



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

рдорд╛рдирдХ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде, рдФрд░ C ++ 20 рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдореЗрдЯрд╛-рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореЗрдЯрд╛-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ, рд▓реЗрдЦрдХ рдЬрд╛рджреБрдИ-рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдХреБрдЫ рдЖрдзреБрдирд┐рдХ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рджреБрдИ void_t рдореЗрдЯрд╛-рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдореБрдЦреНрдп рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрд╡рдЧреЗрдиреА рдУрдЦреЛрдЯрдирд┐рдХреЛрд╡ред C ++ рдЕрднрд┐рдиреЗрддрд╛: рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛?



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

рд░реЗрдирд░ рдЧреНрд░рд┐рдоред рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдореЗрдВ рдХрдВрдЬреНрдпреВрдорд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕



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

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

рдПрд▓реЗрдХреНрд╕реА рдорд╛рд▓реЛрд╡ред рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрдзреБрдирд┐рдХ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдиреБрднрд╡



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

  • рдореЙрдбрд▓-рд╡реНрдпреВ-рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ
  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреАрд╡рдирдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди
  • рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рдг

рд╕рд░реНрдЧреЗрдИ рд╡рд╛рд╕рд┐рд▓рд┐рд╡ред рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХреАрдбрд╝реЗ ... рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢?



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

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

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

рдкреБрдирд╢реНрдЪ

рдЕрдкрдиреЗ рджрдо рдкрд░, рдореИрдВ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧреА рдЖрдВрджреНрд░реЗрдИ рдХрд░рдкреЛрд╡ рдХреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд std :: string рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдорд┐рдиреА-рд╕рд╛рдЬрд╝рд┐рд╢ рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рддреЛ, рдХреНрд░рдо рдореЗрдВ:

  1. рдЖрдВрджреНрд░реЗрдИ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдЕрдВрд╢ (C ++ Russia 2016) "рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдирд┐рдЬреА рдХрд╣рд╛рдирд┐рдпрд╛рдВ" 30:05 рд╕реЗ - рд▓рд┐рдВрдХ ред
  2. "рдХреИрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ: рд╕реА + + рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реА + + рд╕рд╛рдЗрдХрд┐рд▓ рдирд┐рд░реНрдорд╛рдг" - 2:00 - рд▓рд┐рдВрдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдВрдЯреЛрди рдкреЛрд▓реБрдЦрд┐рди (рд╕реА ++ рд░реВрд╕ 2017) рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рдЖрд╕рд╛рди рдЯреНрд░реЛрд▓рд┐рдВрдЧред
  3. C ++ Russia 2018 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдПрдВрдбреНрд░реЗ рдХреА рдХрд╣рд╛рдиреА рдХрд┐ рд╣рдо рдбрд╛рдпрдирд╛рд╕реЛрд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдПрдХ рдирдИ рдЪреАрдЬ рд╕реАрдЦ рд░рд╣реЗ рд╣реИрдВ: "рдкреНрд░рднрд╛рд╡реА C ++" 12:21 рд╕реЗ - рд▓рд┐рдВрдХ ред

рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред

Source: https://habr.com/ru/post/hi418645/


All Articles