ืืคืชืื ืฉืคืช ืืชืื ืืช D ืืฆืืื ืืช ืฉืืจืืจื ืฉื ืืืืจ ืืืชืืืืกืืช ืืจืืฉื DMD 2.100.0, ืืชืืื ืืืขืจืืืช GNU/Linux, Windows, macOS ื- FreeBSD. ืงืื ืืืืืจ ืืืคืฅ ืชืืช ื-BSL ืืืื ืื (ืจืืฉืืื ืชืืื ืช Boost).
D ืืืงืื ืกืืื, ืืขื ืชืืืืจ ืืืื ื-C/C++, ืืืกืคืง ืืช ืืืืฆืืขืื ืฉื ืฉืคืืช ืืืืืจ, ืชืื ืืฉืืืช ืืืง ืืืขืืืืช ืืคืืชืื ืืืืชืจืื ืืช ืืืืืื ืฉื ืฉืคืืช ืืื ืืืืช. ืืืืืื, ืืื ืืกืคืง ืชืืืื ืขืืืจ ืืขืจืืื ืืกืืฆืืืืืืืื, ืืกืงืช ืกืืืื, ื ืืืื ืืืืจืื ืืืืืืื, ืชืื ืืช ืืงืืื, ืืกืคื ืืฉืคื ืืืคืฆืืื ืื, ืืขืจืืช ืชืื ืืืช, ืจืืืื ืืื-ืชืื ืืช, ืืืืืืช ืืืฉืชืืฉ ืืกืคืจืืืช C, ืืืื ืกืคืจืืืช C++ ื-Objective-C.
ืืื ืืฉืื ืืืื ืืืืืืจื ืืืืฉื:
- ืืกืื ืื ืืืฉื ืฉื ืขืืืก ืืชืจ ืฉื ืืคืขืืืื ืืฉืืืืฉ ืืกื ืืฃ D1 ืืืคืกืง. ืืืืืฃ ืืช opNeg, opAdd_r, opAddAssign ืืื'. ืืืืขื opUnary, opBinary, opBinaryRight ื-opOpAssign. ืืกืื ืื ืืืฉื ืฉื ืขืืืก ืืชืจ ืขื ืืื ืืืคืขืื ืืืฆื ืืฉืืืืฉ ืืฉื ืช 2019 ืืืืจืื ืืฉืืืื ืืื ืืืืจืกื 2.100.
- ืืืืช ืืืคืชื ืืืืืง ืืืฆืื ืืฉืืืืฉ ืืื 2018. ืืืงืื ืืืืืง, ืขืืื ืืืฉืชืืฉ ืืคืื ืงืฆืื destroy ืื core.memory.__delete.
- ืืืืืขื ืชืืื ื ืืืฉื ืฉื @mustuse ืฉื ืืชื ืืืืื ืขื ืกืืื struct ืืืืืื ืืฉืืื ืืืืคืืช ืืืืคืื ืืฉืืืืืช ืืืฉืจ ืืงืื ืืื ื ืืืื ืืืชืืืื ืขื ืืจืืืื (ืืืืืื, ืืืืงืื ืฉื @nogc). ืื ืื ื ืขืฉื ืฉืืืืฉ ืืืืืื ืืืกืืื ืืชืืื ื @mustuse ืืงืื, ืืืืืจ ืืคืืง ืฉืืืื.
- ืขืืืจ ืืขืจืืื ืกืืืืื, ืืฉืืืืฉ ืืืืคืืื ".tupleof" ืืืชืจ ืืงืื ืืช ืจืฆืฃ ืืขืจืืื (lvalue) ืฉื ืื ืจืืื ืืืขืจื. void foo(int, int, int) { /* โฆ */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // ืื ืืืื foo(1, 2, 3); ืืฆืืฃ[3] fa; fa.tupleof = ia.tupleof; // ืืงืฆืื ืคืฉืืื fa = ia ืืืจืืช ืืฉืืืื ืืืขื ื(fa == [1F, 2F, 3F]);
ืืงืืจ: OpenNet.ru