рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЦрд░рдЧреЛрд╢ рдЫреЗрдж рдпрд╛ рд╕реА ++ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреА рдЧрд╣рд░рд╛рдИ

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕реА ++ рдкрд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░

рд▓реЗрдЦрдХ: рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡, khandeliantsрдлрд┐рд▓рд┐рдк рд╣реИрдВрдбреАрд▓реЗрдиреНрдЯреНрд╕ред

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

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

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

рдЖрдЬ рд╣рдо рдПрдХ рдЫреЛрдЯреА рдХрд╣рд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдкреВрдЫреЗ рдЧрдП рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛ рдерд╛ред рддреЛ, рд╣рдо рдпрд╣ рдХреЛрдб рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ:

void F1()
{
  int i = 1;
  printf("%d, %d\n", i++, i++);
}

рдФрд░ рдкреВрдЫреЗрдВ: "рдХреНрдпрд╛ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?"

рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╢реНрдиред рддреБрд░рдВрдд рдЬреНрдЮрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЙрд╕ рдкрд░ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрдиреНрд╣реЗрдВ рд╣реЗрдбрд╣рдВрдЯрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ (hh.ru) рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд╣реАрдВ, рд╡реЗ рдмрдХрд╡рд╛рд╕ рд╣реИрдВред рд╣рдорд╛рд░реА рд╕реНрдореГрддрд┐ рдореЗрдВ, рдЕрджреНрд╡рд┐рддреАрдп рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдереЗ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЖрддреНрдорд╛ рдореЗрдВ рдХреБрдЫ рдЙрддреНрддрд░ рджрд┐рдпрд╛:

рдпрд╣ рдХреЛрдб рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рд╢рдд, рдлрд┐рд░ рдбреА, рдлрд┐рд░ рдПрдХ рдФрд░ рдкреНрд░рддрд┐рд╢рдд, рдбреА, рдлрд┐рд░ рдПрдХ рдЫрдбрд╝реА, рдПрди, рдФрд░ рдлрд┐рд░ рджреЛ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдЬрд▓реНрджреА рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ, рдЕрдм рд╡рд╛рдкрд╕ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП :)ред рдЕрдХреНрд╕рд░ рд╡реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ:

1 рдФрд░ 2 рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд╕реНрддрд░ рдХрд╛ рдЙрддреНрддрд░ рд╣реИред рд╣рд╛рдВ, рдРрд╕реЗ рдореВрд▓реНрдп, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрджреНрд░рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "1, 2" рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдпрджрд┐ рдЖрдк рдЬреАрд╕реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЖрдк "2, 1" рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ MSVC рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдЙрд╕рдиреЗ "2, 1" рдХрд╛ рднреА рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХреЛрдИ рдирд┐рд╢рд╛рди рдирд╣реАрдВред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд╕рдХреНрд╖рдо / O2 рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рд░рд┐рд▓реАрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рддрд╣рдд рдЗрдХрдЯреНрдареЗ рд╣реБрдП ред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рд╕рд┐рд░ рдкрд░ рд░реЛрдорд╛рдВрдЪ рдкрд╛рдпрд╛ :)ред рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реИ? рд╣рд╛! рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ: "1, 1"ред

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

рдЪреВрдВрдХрд┐ рд╕реА ++ рдорд╛рдирдХ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП MSVC 19.25 рд╕рдВрдХрд▓рдХ (Microsoft Visual Studio рд╕рдореБрджрд╛рдп 2019, рд╕рдВрд╕реНрдХрд░рдг 16.5.1) рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдбрд░ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рднрд╛рд╖рд╛ рдорд╛рдирдХ рдХрд╛ рдзреНрд╡рдЬ рд╕рдВрд╕реНрдХрд░рдг '/ std: c ++ 14' рд╣реИ:


рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдиреБрдХреВрд▓рдХ рдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛:

void F1()
{
  int i = 1;
  int tmp = i;
  i += 2;
  printf("%d, %d\n", tmp, tmp);
}

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

void foo(std::unique_ptr<int>, std::unique_ptr<double>);

int main()
{
  foo(std::unique_ptr<int> { new int { 0 } },
      std::unique_ptr<double> { new double { 0.0 } });
}

рдПрдХ рдЪрд╛рд▓рд╛рдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдЧрдгрдирд╛ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╣реА MSVC ):

new int { .... };
new double { .... };
std::unique_ptr<int>::unique_ptr
std::unique_ptr<double>::unique_ptr

рдпрджрд┐ рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдХреЙрд▓ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рдорд┐рд▓рддреА рд╣реИред

рд▓реЗрдХрд┐рди рдореВрд▓ рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛, рд╣рдо рдЕрднреА рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдереЗ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ "1, 1" рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╣реЛрдЧрд╛ред рдФрд░ рдлрд┐рд░ рд╣рдордиреЗ рдорд╛рдирдХ рдХреЛрдб рдзреНрд╡рдЬ '/ std: c ++ 17' рдХреЗ рд╕рд╛рде MSVC рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ "2, 1" рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:


рд╕рдм рдХреБрдЫ рдЙрдЪрд┐рдд рд╣реИ, рд╕рдВрдХрд▓рдХ рдиреЗ рдореВрд▓реНрдпреЛрдВ 2 рдФрд░ 1 рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ C ++ 17 рдорд╛рдирдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛:

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

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

рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк '' / std: c ++ 17 'рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣рд╛рдВ рднреА рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - std :: make_unique рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдм рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рдЗрд╕ рдкреНрд░рд╢реНрди рдореЗрдВ рдЧрд╣рд░рд╛рдИ рдХрд╛ рдПрдХ рдФрд░ рдкреИрдорд╛рдирд╛ рд╣реИред рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓рдХ рдпрд╛ рдорд╛рдирдХ рдХреА рдПрдХ рдЕрд▓рдЧ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднреНрдпрд╛рд╕ рд╣реИ :)ред C ++ рдХреА рджреБрдирд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВред рд╣рдореЗрдВ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЦреБрдж рдХреЛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ! :)

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

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


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

All Articles