рдбреА рднрд╛рд╖рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд░рд┐рд▓реАрдЬрд╝ 2.100

рдбреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдореБрдЦреНрдп рд╕рдВрджрд░реНрдн рдХрдВрдкрд╛рдЗрд▓рд░ рдбреАрдПрдордбреА 2.100.0 рдХреА рд░рд┐рд▓реАрдЬ рдкреНрд░рд╕реНрддреБрдд рдХреА, рдЬреЛ рдЬреАрдПрдирдпреВ/рд▓рд┐рдирдХреНрд╕, рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕ рдФрд░ рдлреНрд░реАрдмреАрдПрд╕рдбреА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдореБрдлрд╝реНрдд рдмреАрдПрд╕рдПрд▓ (рдмреВрд╕реНрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд▓рд╛рдЗрд╕реЗрдВрд╕) рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдирдИ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ:

  • рдбреА1 рд╢рд╛рдЦрд╛ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреБрд░рд╛рдиреА рд╢реИрд▓реА рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред opNeg, opAdd_r, opAddAssign рдЖрджрд┐ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред opUnary, opBinary, opBinaryRight рдФрд░ opOpAssign рдЖрдпреЗред рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреБрд░рд╛рдиреА рд╢реИрд▓реА рдХреЛ 2019 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ 2.100 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред
  • рдбрд┐рд▓реАрдЯ рдХреАрд╡рд░реНрдб рдХреЛ 2018 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рд▓реАрдЯ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдирд╖реНрдЯ рдпрд╛ core.memory.__delete рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдПрдХ рдирдИ @mustuse рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдФрд░ рдпреВрдирд┐рдпрди рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдХреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХреЛрдб рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @nogc рдмреНрд▓реЙрдХ рдореЗрдВ)ред рдпрджрд┐ рдХреЛрдб рдореЗрдВ @mustuse рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
  • рд╕реНрдереИрддрд┐рдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рдорд╛рдиреЛрдВ (lvalue) рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ".tupleof" рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред void foo(int, int, int) {/* тАж */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // рдПрдирд╛рд▓реЙрдЧ рдлреВ(1, 2, 3); рдлреНрд▓реЛрдЯ[3] рдкрд┐рддрд╛; fa.tupleof = ia.tupleof; // рд╕рд░рд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ fa = ia рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИassert(fa == [1F, 2F, 3F]);

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ