рдирдП C ++ 11 рдорд╛рдирдХ рдХреА рддреНрд╡рд░рд┐рдд рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдЕрдкрдиреА рд╕рдордЭ рдХреЛ рдЧрд╣рд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд╕рдм рдХреБрдЫ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЕрджреНрднреБрдд рд╣реИ, рд▓реЗрдХрд┐рди рдиреБрдХрд╕рд╛рди рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН: рд╕реА ++ 03 рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреА рдХреБрдЫ рд╣рд╛рдирд┐ред
рдорд╛рдирдХ рд╕рдВрдХрд▓рдХ (рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЙрдкрдХреГрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рд╡рд╛рдкрд╕реА рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдмрдпрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рди рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
std :: string f ( )
{
std :: string s = "рд╣рд╛рдп!" ;
рд╡рд╛рдкрд╕реА ;
}
рдпрд╣рд╛рдБ, рд╡рд╛рдкрд╕реА рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╣рд╛рдБ рдПрдХ рдЕрдВрддрд░рд╛рд▓ рдерд╛, рдФрд░ рд╡рд╛рдкрд╕реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЕрджреНрднреБрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рднрд╛рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИ, рдирдХрд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддреА рд╣реИред рдЖрдЗрдП рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдорд╛рдирдХ рд░рд┐рдЯрд░реНрди рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХреНрдпреЛрдВ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреИрдХ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд░рд╣рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд░реЗрд╡рд▓реНрдпреВ рд╕рдВрджрд░реНрдн? рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рд╣рд╛рдБ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдкрд╕реА рдХреЗ рдмрд╛рдж рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдХрд┐рд╕реА рдХреЛ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рднрд▓реЗ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдирд╛рдорд┐рдд рд╡рд╕реНрддреБ рд╣реЛ, рдРрд╕реА рд╡рд╕реНрддреБ xvalue (xPiring рдорд╛рди) рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
"рдЕрдм рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ" рд╢рдмреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд▓реМрдЯрдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рд╕рдорд╛рд░реЛрд╣ рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛? C рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ (SEH рдФрд░ __try ...__ рдЕрдВрдд рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ), C ++ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИред рд╡рд╛рдкрд╕реА рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рддрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд▓реМрдЯрддрд╛ рд╣реИ, рддрдм рддрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд┐рдирд╛рд╢рдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рджрд╛рдпрд░реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
// рдХрдХреНрд╖рд╛ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рдВрд░рдЪрдирд╛ рдлрд╛рдЗрдирд▓
{
рдлрд╝рд╛рдЗрдирд▓реАрдЬрд╝рд░ ( std :: string const & str )
: _str ( str )
{
}
~ рдлрд╛рдЗрдирд▓
{
std :: cout << _str << std :: endl ;
}
рдирд┐рдЬреА :
std :: string const & _str ;
} ;
std :: string f ( )
{
// рдмреНрд░реЗрдХ NRVO (рдХреЗрд╡рд▓ MSVC 10.0 рдкрд░ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ)
рдЕрдЧрд░ ( рдЭреВрдард╛ )
рд╡рд╛рдкрд╕реА std :: string ( "рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рдХреЛрдб!" ) ;
// -------------------------------------------
std :: string s = "рд╣рд╛рдп!" ;
рдлрд╝рд╛рдЗрдирд▓реАрдЬрд╝рд░ рдлрд╝рд╛рдЗрдирд▓ ;
рд╡рд╛рдкрд╕реА ;
}
NRVO рдЕрдиреБрдХреВрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдХреЗ рд▓рд┐рдП рдбрдореА рдХреЛрдб рдХреА рдкрд╣рд▓реА 2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (MSVC рдХреЗ рд▓рд┐рдП, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╣рд╛рде рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрдХрд▓рдХ рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдХрд▓рдХ рдореЗрдВ NRVO рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛)ред C ++ 03 рд╕рдВрдХрд▓рдХ рдХреЛрдб рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ f рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╣рд╛рдп!" рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдФрд░ C ++ 11 (рдЬреИрд╕рд╛ рдХрд┐ рд╕рднреА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛) рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдкрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЦреАрдВрдЪрддреА рд╣реИред
рдореИрдВрдиреЗ MSVC 9.0 (c ++ 03) рдФрд░ 10.0 (рдЖрдВрд╢рд┐рдХ c ++ 11) рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред рдЖрдкрдХрд╛ C ++ 11 рд╕рдВрдХрд▓рдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╣рд╛рдп!" рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрдХрд▓рдХ рдЫреЛрдЯреЗ рддрд╛рд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, std :: string class рдЕрдкрдиреЗ рдЕрдВрджрд░ рдПрдХ рдЫреЛрдЯрд╛ рдлрд┐рдХреНрд╕реНрдб рдмрдлрд░ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрд╕рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдвреЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рджрд╛рддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд╡рд╛рдЧрдд рд░реЗрдЦрд╛ рдХреЛ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рдмрдирд╛рдПрдВред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд░рди рдЯрд╛рдЗрдо рдореЗрдВ рдФрд░ рднреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рдЫреЛрдЯреА рд▓рд╛рдЗрдиреЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд▓рдВрдмреА рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╣реИред рдореИрдВрдиреЗ std :: string рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рджрд╛рддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреЛрд╕реНрдЯрдХрд╛рдВрдб s.empty () == рд╕рдЪ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ? рдЕрдЧрд░ рдРрд╕реА рдХреЛрдИ рдмрд╛рдд рд╣реИ, рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рджреВрд░ рдХреА рдХреМрдбрд╝реА рд╣реИ, рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореБрдЭреЗ рдХреЛрдб рдХреЛ рдирдП рдорд╛рдирдХ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреЛрдЦрд┐рдо рд╕рдореВрд╣ рдХреЛрдб рд╣реИ рдЬреЛ BOOST_SCOPE_EXIT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдПрдХ рдЖрд╕рд╛рди рдмрд╛рдд, рдореБрдЭреЗ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛), рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп, рд╡рд░реНрдЧ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдВрддрд┐рдо рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬреЛ (рд╡рд░реНрдЧ) рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднрд┐рдХ рд╣реИред рдФрд░ рдореБрдЭреЗ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдлрд╛рдЗрдирд▓ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рднреА рдорд┐рд▓рд╛ред
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡реГрджреНрдзрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкрд┐рдЫрдбрд╝реА рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛ рдмрд▓рд┐рджрд╛рди рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рд╣рд╛рд░рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рд╕рдВрднрд╛рд╡рд┐рдд рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирд╕реЛрдВ рд╕реЗ рдкрдХрдбрд╝рд╛ рдерд╛ рдФрд░ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рд╕рдВрдХрд▓рдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп, рдЙрд╕рдХреЗ рд╕рд┐рд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рд▓реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
C ++ 11 рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрдХреНрд░рдордг рд╣реИред
UPD: рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдбрдореА рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ MSVC рдХреЗ рд▓рд┐рдП NRVO рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред