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

рдбреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдиреА рдореБрдЦреНрдп рд╕рдВрджрд░реНрдн рдХрдВрдкрд╛рдЗрд▓рд░ DMD 2.100.0 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ, рдЬреЗ GNU/Linux, Windows, macOS рдЖрдгрд┐ FreeBSD рдкреНрд░рдгрд╛рд▓реАрдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдореЛрдлрдд BSL (рдмреВрд╕реНрдЯ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд▓рд╛рдпрд╕рдиреНрд╕) рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

D рд╕реНрдерд┐рд░рдкрдгреЗ рдЯрд╛рдИрдк рдХреЗрд▓реЗрд▓рд╛ рдЖрд╣реЗ, C/C++ рд╕рд╛рд░рдЦрд╛рдЪ рдПрдХ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЖрд╣реЗ, рдЖрдгрд┐ рдбрд╛рдпрдиреЕрдорд┐рдХ рднрд╛рд╖рд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдлрд╛рдпрджреЗ рдШреЗрдд рдЕрд╕рддрд╛рдирд╛ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛рдВрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреЗ рдЕрд╕реЛрд╕рд┐рдПрдЯрд┐рд╡реНрд╣ рдЕтАНреЕрд░реЗ, рдЯрд╛рдЗрдк рдЗрдиреНрдлрд░рдиреНрд╕, рдСрдЯреЛрдореЕрдЯрд┐рдХ рдореЗрдорд░реА рдореЕрдиреЗрдЬрдореЗрдВрдЯ, рдкреЕрд░рд▓рд▓ рдкреНрд░реЛрдЧреНрд░реЕрдорд┐рдВрдЧ, рдкрд░реНрдпрд╛рдпреА рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд┐рд╕реНрдЯреАрдо, рдореЗрдЯрд╛рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдШрдЯрдХ, рд╕реА рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдХрд╛рд╣реА рд╕реА++ рдЖрдгрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡реНрд╣-рд╕реА рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рддреЗ.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рддреАрд▓ рдмрджрд▓рд╛рдВрдкреИрдХреА:

  • D1 рд╢рд╛рдЦреЗрдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдд рдпреЗрдгрд╛рд░реА рдСрдкрд░реЗрдЯрд░ рдУрд╡реНрд╣рд░рд▓реЛрдбрд┐рдВрдЧрдЪреА рдЬреБрдиреА рд╢реИрд▓реА рдмрдВрдж рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. 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); // analogue foo(1, 2, 3); рдлреНрд▓реЛрдЯ[3] рдлреЕ; fa.tupleof = ia.tupleof; // рд╕реЛрдкреНрдпрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ fa = ia рдореБрд│реЗ рдПрд░рд░ рдЕреЕрд╕рд░реНрдЯ (fa == [1F, 2F, 3F]);

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛