рдирд╛рдорд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдмреВрд╕реНрдЯ

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

bool foo(int important, int& pOut, int sometimes = 1, int occasionally = 2, int rarely = 3) { //... } 

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ

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


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

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

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

 #include <boost/parameter.hpp> BOOST_PARAMETER_NAME(important) BOOST_PARAMETER_NAME(pOut) BOOST_PARAMETER_NAME(sometimes) BOOST_PARAMETER_NAME(occasionally) BOOST_PARAMETER_NAME(rarely) 


рдЕрдЧрд▓рд╛ рд╣рдордиреЗ рдлрдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд┐рдпрд╛

 BOOST_PARAMETER_FUNCTION( (bool), namedParametersFoo, tag, (required (important, *) (in_out(pOut), *) ) (optional (sometimes, *, important * 2) (occasionally, *, 300) (rarely, *, 400) ) ) { //   } 

рдЪрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдореИрдХреНрд░реЛ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЙрдорд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

  1. рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ - рдХреЛрд╖реНрдардХ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ
  2. рдХрд╛рд░реНрдп рдХрд╛ рдирд╛рдо
  3. рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдирд╛рдо рд╕реНрдерд╛рдиред BOOST_PARAMETER_NAME рдЕрдкрдиреЗ рдЖрдк рдЯреИрдЧ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рджреЗрддрд╛ рд╣реИ
  4. рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдЪреА

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

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫред рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ "рдкреБрд░рд╛рдиреЗ рдЬрдорд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╛рдиреА рдЬреИрд╕реЗ рдХрд┐ рдЕрдЧрд░ рдСрдкреНрд╢рди рд╣реИ

 bool newFoo(int important, int& pOut, int sometimes = important * 2, int occasionally = 2, int rarely = 3) { //... } 

newFoo рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдкреИрд░рд╛рдореАрдЯрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддрд╛ рд╣реИ

рдпрд╛рдиреА nameParametersFoo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  int s = 0; namedParametersFoo(1, s, 1, 1, 1); namedParametersFoo(1, s, 1, 1); namedParametersFoo(1, s, 1); namedParametersFoo(1, s); 


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

 namedParametersFoo(_sometimes = 1, _important = 111, _pOut = s); 

рддреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ

  1. рджреГрд╢реНрдпрддрд╛ - рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рд╕рдВрдЦреНрдпрд╛ 1 рдФрд░ 111 рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ / рдЧрд▓рдд рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ
  2. рдордирдорд╛рдирд╛ рдЖрджреЗрд╢ - рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

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

 namedParametersFoo(_sometimes = 1, _pOut = s); 

рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдЖрд╡рд╢реНрдпрдХ _important рдкреИрд░рд╛рдореАрдЯрд░ рдЧрд╛рдпрдм рд╣реИ

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

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


All Articles