ื“ื™ ืฉืคึผืจืึทืš ืงืึทืžืคึผื™ื™ืœืขืจ ืžืขืœื“ื•ื ื’ 2.100

ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš D ื“ืขืจืœืื ื’ื˜ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืจืขืคึฟืขืจืขื ืฅ ืงืึทืžืคึผื™ื™ืœืขืจ DMD 2.100.0, ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ GNU / Linux, Windows, macOS ืื•ืŸ FreeBSD ืกื™ืกื˜ืขืžืขืŸ. ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ ืคืจื™ื™ BSL (Boost Software License).

ื“ ืื™ื– ืกื˜ืึทื˜ื™ืงืœื™ ื˜ื™ื™ืคึผื˜, ื”ืื˜ ืึท ืกื™ื ื˜ืึทืงืก ืขื ืœืขืš ืฆื• C / C ++, ืื•ืŸ ื’ื™ื˜ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืงืึทืžืคึผื™ื™ืœื“ ืฉืคึผืจืึทื›ืŸ, ื‘ืฉืขืช ื‘ืึทืจืึธื•ื™ื ื’ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜ ืื•ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ื‘ืขื ืขืคื™ืฅ ืคื•ืŸ ื“ื™ื ืึทืžื™ืฉ ืฉืคึผืจืึทื›ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ื’ื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืกืกืึธืกื™ืึทื˜ื™ื•ื•ืข ืขืจื™ื™ื–, ื˜ื™ืคึผ ื™ื ืคืขืจืึทื ืก, ืึธื˜ืึทืžืึทื˜ื™ืง ื–ื›ึผืจื•ืŸ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’, ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’, ืึท ืึทืคึผืฉืึทื ืึทืœ ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ, ืึท ืžื•ืกื˜ืขืจ ืกื™ืกื˜ืขื, ืžืขื˜ืึทืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ C ืœื™ื™ื‘ืจืขืจื™ื–, ืื•ืŸ ืขื˜ืœืขื›ืข C ++ ืื•ืŸ ืึธื‘ื™ืขืงื˜ื™ื•ื•-C ืœื™ื™ื‘ืจืขืจื™ื–.

ืฆื•ื•ื™ืฉืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ืžืขืœื“ื•ื ื’:

  • ื“ืขืจ ืึทืœื˜ ืกื˜ื™ืœ ืคื•ืŸ ืึธืคึผืขืจืึทื˜ืึธืจ ืึธื•ื•ื•ืขืจืœืึธื•ื“ื™ื ื’ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ D1 ืฆื•ื•ื™ื™ึทื’ ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜. ืจื™ืคึผืœื™ื™ืกื˜ opNeg, opAdd_r, opAddAssign, ืขื˜ืง. ื’ืขืงื•ืžืขืŸ ืึธืคึผUnary, opBinary, opBinaryRight ืื•ืŸ opOpAssign. ื“ืขืจ ืึทืœื˜ ื ื•ืกื— ืคื•ืŸ ืึธืคึผืขืจืึทื˜ืึธืจ ืึธื•ื•ื•ืขืจืœืึธื•ื“ื™ื ื’ ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื™ืŸ 2019 ืื•ืŸ ื•ื•ืขื˜ ื•ื•ืึทืจืคืŸ ืึท ื˜ืขื•ืช ื–ื™ื ื˜ ืžืขืœื“ื•ื ื’ 2.100.
  • ื“ื™ ื•ื™ืกืžืขืงืŸ ืงื™ื•ื•ืขืจื“ ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ื–ื™ื ื˜ 2018. ืึทื ืฉื˜ืึธื˜ ื•ื™ืกืžืขืงืŸ, ืื™ืจ ื–ืึธืœ ื ื•ืฆืŸ ื“ื™ ืฆืขืฉื˜ืขืจืŸ ืึธื“ืขืจ core.memory.__delete ืคึฟื•ื ืงืฆื™ืข.
  • ื ื ื™ื™ึทืข @mustuse ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ืฆื• ืกื˜ืจื•ืงื˜ื•ืจ ืื•ืŸ ื™ื•ื ื™ืึทืŸ ื˜ื™ื™ืคึผืก ื•ื•ื™ ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืื•ืคึฟืŸ ืคื•ืŸ ื˜ืขื•ืช ื”ืึทื ื“ืœื™ื ื’ ื•ื•ืขืŸ ื“ื™ ืงืึธื“ ืงืขืŸ ื ื™ืฉื˜ ืฉืขืคึผืŸ ืื•ื™ืกื ืขืžืขืŸ (ืœืžืฉืœ, ืื™ืŸ @nogc ื‘ืœืึทืงืก). ืื•ื™ื‘ ืึทืŸ ืื•ื™ืกื“ืจื•ืง ืื ื’ืขืฆื™ื™ื›ื ื˜ ืžื™ื˜ ื“ื™ @mustuse ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืงืึธื“, ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืขื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ื˜ืขื•ืช.
  • ืคึฟืึทืจ ืกื˜ืึทื˜ื™ืง ืขืจื™ื™ื–, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ".tupleof" ืคืึทืจืžืึธื’ ืื™ื– ืขืจืœื•ื™ื‘ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืกื™ืงื•ื•ืึทื ืก ืคื•ืŸ ื•ื•ืึทืœื•ืขืก (ืœื•ื•ืึทืœื™ื•) ืคื•ืŸ ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ืคื•ืŸ ื“ื™ ืžืขื ื’ืข. void foo(int, int, int) {/* โ€ฆ */ } int[3] ia = [1, 2, 3]; ืคืึธืึธ (ื™ืึท.ื˜ื•ืคึผืœืขืึธืฃ); // ืึทื ืึทืœืึธื’ ืคืึธืึธ (1, 2, 3); ืœืึธื–ื  ืฉื•ื•ื™ืžืขืŸ [3] ืคืึท; fa.tupleof = ia.tupleof; // ืคึผืฉื•ื˜ ืึทืกื™ื™ื ืžืึทื ื˜ ืคืึท = ืื™ื– ืจืขื–ื•ืœื˜ืื˜ืŸ ืื™ืŸ ืึท ื˜ืขื•ืช ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ (ืคืึท == [1F, 2F, 3F]);

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’