рдПрдХ рд╕рдВрдпреБрдХреНрдд ITMO рдФрд░ JetBrains
рдорд╛рд╕реНрдЯрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдо рдЙрди рдЫрд╛рддреНрд░реЛрдВ рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо C ++ Russia Piter 2019 рд╕рдореНрдореЗрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдЦрдХ рдПрдХ рджреВрд╕рд░реЗ рд╡рд░реНрд╖ рдХреЗ рдЫрд╛рддреНрд░ рдЕрд░реНрдпреЛрдо рдЦреЛрд░реЛрд╢реЗрд╡ рд╣реИред

рдирд╡рдВрдмрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ cpp-russia-piter рд╕рдореНрдореЗрд▓рди рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛, рдиреАрдЪреЗ рдореИрдВ рдЙрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рд╣реИрдВред
рд░реЛрдорди рд░реБрд╕рд┐рдПрд╡: рд╕реА ++ рдЕрдкрд╡рд╛рдж рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдХреЗ рдЪрд╢реНрдореЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд╡рд╛рдж
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд░рд┐рдкреЛрд░реНрдЯ рдЬрд┐рд╕рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рдХреНрддрд╛ рдиреЗ рдЖрдзреБрдирд┐рдХ рд╕реА ++ рдореЗрдВ рд╢реВрдиреНрдп рд▓рд╛рдЧрдд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред
рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдИрдЖрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рдг-рдкреНрд░рд╡рд╛рд╣ рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмреНрд▓реЙрдХ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдЧрд▓реЗ рдмреНрд▓реЙрдХ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рдПрдХ рдЕрдиреНрдп рдмреНрд▓реЙрдХ, рдПрдХ рд╡рд╛рдкрд╕реА рдирд┐рд░реНрджреЗрд╢, рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрд╣реНрд╡рд╛рди рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╢рд░реНрдд рд╕рдВрдХреНрд░рдордг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдпрд╣ рдЧреБрдг рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рднреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рд╣рдо рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдРрд╕реЗ рдЕрдиреБрдХреВрд▓рди рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрдЧрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрджрддрд░ рд╣реИред
рд╕реНрдкреАрдХрд░ рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рдЖрдзреБрдирд┐рдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЙрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЛ рдЗрдирд╡реЙрдЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдм рдЯрд░реНрдорд┐рдирд▓ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЧрд╣ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди, рд╕рдВрдХрд▓рдХ рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрд╡рдпрдВ рд╣реА noexcept рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рдпрд╣ рд╕рд╣реА рд╣реИ) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдВрдХрд▓рдХ рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдЧрд╛ред
(рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдбреНрд╕)рдореИрдХреНрд╕рд┐рдо рдЦрд┐рдЬрд┐рдиреНрд╕реНрдХреА: рдПрдХреНрдЯрд░ рдФрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрдореНрдлрд░реНрдЯ-рдХреНрд▓рд╛рд╕ рд╣рд╛рдЙрд╕рд┐рдВрдЧ
рд╕реНрдкреАрдХрд░ рдиреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝реА рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
- рд╕рд╛рдЭрд╛ рдбреЗрдЯрд╛
- рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ,
- рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛,
- рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдордХреНрдЦреА рдкрд░ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдирд┐рд░реНрдорд╛рдгред
рдирддреАрдЬрддрди, рд╕реНрдкреАрдХрд░ рдиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ "рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ" рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕реНрд╡рдпрдВ рдШрдЯрдХ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рд╕рдВрджреЗрд╢ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХреА рдХреАрдордд рдкрд░, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рд╕реЗ рдХрдо, рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп "рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ" рдХреЗ рдмреАрдЪ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓реЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрди: рд╕рдВрддреБрд▓рди рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред
(рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдбреНрд╕)рдирд┐рдХреЛрд▓реЗ рдмреЗрд▓реЛрдмреЛрд░реЛрдбреЛрд╡: рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реНрд▓реИрдм-рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдирд╛рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИред рд╕реНрдкреАрдХрд░ рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ
рд╕реНрд▓реИрдм рдПрд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд╛рдлреА рдмрдврд╝рд╛рдпрд╛ред рд╕реНрд▓реИрдм рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рд╕реНрд▓реИрдм рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рд╕рдиреНрдирд┐рд╣рд┐рдд рдЯреБрдХрдбрд╝рд╛ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░) рд╣реИ рдЬреЛ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
- рдХреИрд╢ - рдПрдХ рд╣реА рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рд╕реНрд▓реИрдм рдХреА рдПрдХ рд╕реВрдЪреА,
- рд╕реНрд▓реИрдм рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ - рдХреИрд╢ рдХрд╛ рдПрдХ рд╕реЗрдЯред
рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреАрд▓рдХреНрд▓реЛрдХреЗрд╢рди рдХреЛ рдПрдХ рдирд┐рд╢рд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЗрдЯ рдХрдордЬреЛрд░ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдореГрддрд┐ рд╡рд┐рдЦрдВрдбрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХреЗ рд╕реНрд▓реИрдм рдХреА рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░ рдмрд╛рд░ рдПрдХ рдмрдбрд╝рд╛ рдФрд░ рдмрдбрд╝рд╛ рдЖрдХрд╛рд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдирдпрд╛ рдХреИрд╢ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдкреБрд░рд╛рдиреЗ рдХреИрд╢ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реНрдкреАрдХрд░ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛, рджреВрд╕рд░реЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдХреНрдЯрд░ рдХреЛ рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рд╣реИрд╢рдореИрдк, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рд▓рд╛рдн рдЕрднреА рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
(рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдбреНрд╕)рдПрдВрдЯреЛрди рдкреЛрд▓реБрдЦрд┐рди: рд╕реА ++ рдЯреИрдХреНрд╕реА рдЯреНрд░рд┐рдХреНрд╕
рдПрдВрдЯреЛрди рдкреЛрд▓реБрдЦрд┐рди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣рдореЗрд╢рд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬреЛ рд╕рдорд╛рдзрд╛рди рд╡реЗ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░, рдПрдВрдЯреЛрди рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдЖрд╡рдВрдЯрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд┐рдВрдкрд▓ рдкреИрдЯрд░реНрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рдкрд┐рдВрдкрд▓ рдкреИрдЯрд░реНрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рд╣рдо рдЧрддрд┐рд╢реАрд▓ рдЖрд╡рдВрдЯрди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдлреВ рд╡рд╕реНрддреБ рдореЗрдВ рд╕реАрдзреЗ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Foo.h рдореЗрдВ Foo_impl рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд░рд╣рддрд╛ рд╣реИ, рд╡рд╣ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рдЬрд╛рдВрдЪ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдХрд╛рд░ рдЕрднреА рднреА рд╕рд╣реА рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреБрдЪрд┐рдд рдмрдлрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдпреВрдмреА рд╣реИред
рд╣рдо cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЪреЗрдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╣реА рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреВрд╕рд░реЗ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХреЗред
рдПрдВрдЯреЛрди рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЕрдкрдиреА рдХреНрд░рдордмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдмрд╕ рдПрдбреАрдПрд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рди рднреВрд▓реЗрдВ: рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
(рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдбреНрд╕)рдПрд░рд┐рдХ рдиреАрдмреНрд▓рд░: рд╕реА ++ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рдЕрдореВрд░реНрдд
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд░рд┐рдкреЛрд░реНрдЯ, рдЬреЛ рдореМрдЬреВрджрд╛ рднрд╛рд╖рд╛ рдорд╛рдирдХ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдореВрд░реНрдд рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреА рд╣реИ: рдХреНрдпреЛрдВ рднрд╡рд┐рд╖реНрдп рдФрд░ рд╡рд╛рджрд╛ рдзреАрдорд╛ рд╣реИ, рдФрд░ рдХреНрдпрд╛ рд╣рдо рдЗрди рдУрд╡рд░рд╣реЗрдбреНрд╕ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ
https://github.com/facebookexperimental/libunifex(рд░рд┐рдкреЛрд░реНрдЯ рд╕реНрд▓рд╛рдЗрдбреНрд╕)рджрд┐рдорд┐рддреНрд░реА рдХреЛрдЬрд╝реЗрд╡рдирд┐рдХреЛрд╡ рдФрд░ рдПрдВрдбреНрд░реА рдбреЗрд╡рд┐рдбреЛрд╡: рдореЙрдбреНрдпреВрд▓ рдкрд░ рджреЛ рд░рд┐рдкреЛрд░реНрдЯ
рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рджреЛ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рдереАрдВред рджреЛрдиреЛрдВ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЕрднреА рддрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рдереА рдХрд┐ рднрд╛рд╖рд╛ рдХреА рдпрд╣ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ C ++ 20 рдмрд╛рд╣рд░ рдЖ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
(рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕реНрд▓рд╛рдЗрдбреНрд╕:
1 ,
2 )
рдирд┐рд╖реНрдХрд░реНрд╖
рдкрд┐рдЫрд▓рд╛ рд╕рдореНрдореЗрд▓рди рднрд╛рд╖рд╛ рдХреА рдкреНрд░рд╕рд┐рджреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдирд┐рдореНрди рдорд╛рдирдХ рд╕реЗ рдЪрд┐рдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереАрдВ - рд╕реА ++ 20ред рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рднреА C ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред