D ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ๋ฐ์๋ GNU/Linux, Windows, macOS ๋ฐ FreeBSD ์์คํ ์ ์ง์ํ๋ ์ฃผ์ ์ฐธ์กฐ ์ปดํ์ผ๋ฌ DMD 2.100.0์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐํํ์ต๋๋ค. ์ปดํ์ผ๋ฌ ์ฝ๋๋ ๋ฌด๋ฃ BSL(Boost Software License)์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
D๋ ์ ์ ์ผ๋ก ์ ํ์ด ์ง์ ๋๊ณ C/C++์ ์ ์ฌํ ๊ตฌ๋ฌธ์ ๊ฐ์ง๋ฉฐ ์ปดํ์ผ๋ ์ธ์ด์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๋์์ ๋์ ์ธ์ด์ ๊ฐ๋ฐ ํจ์จ์ฑ ๋ฐ ๋ณด์ ์ด์ ์ ์ผ๋ถ ๊ฐ์ ธ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฐ๊ด ๋ฐฐ์ด, ์ ํ ์ถ๋ก , ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ, ์ ํ์ ๊ฐ๋น์ง ์์ง๊ธฐ, ํ ํ๋ฆฟ ์์คํ , ๋ฉํ ํ๋ก๊ทธ๋๋ฐ ๊ตฌ์ฑ ์์, C ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๊ธฐ๋ฅ, ์ผ๋ถ C++ ๋ฐ Objective-C ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- D1 ๋ธ๋์น์์ ์ฌ์ฉ๋๋ ์ด์ ์คํ์ผ์ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ด ์ค๋จ๋์์ต๋๋ค. opNeg, opAdd_r, opAddAssign ๋ฑ์ ๋์ฒดํฉ๋๋ค. opUnary, opBinary, opBinaryRight ๋ฐ opOpAssign์ด ๋์์ต๋๋ค. ์ด์ ์คํ์ผ์ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ 2019๋ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ฆด๋ฆฌ์ค 2.100๋ถํฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
- delete ํค์๋๋ 2018๋ ๋ถํฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ญ์ ๋์ destroy ๋๋ core.memory.__delete ํจ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์ฝ๋๊ฐ ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ(์: @nogc ๋ธ๋ก์์) ์ค๋ฅ ์ฒ๋ฆฌ์ ๋์ฒด ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ์กฐ์ฒด ๋ฐ ๊ณต์ฉ์ฒด ์ ํ์ ์ ์ฉํ ์ ์๋ ์๋ก์ด @mustuse ํน์ฑ์ด ๊ตฌํ๋์์ต๋๋ค. @mustuse ํน์ฑ์ด ํ์๋ ํํ์์ด ์ฝ๋์์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ์ปดํ์ผ๋ฌ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ ์ ๋ฐฐ์ด์ ๊ฒฝ์ฐ ".tupleof" ์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํ ์ผ๋ จ์ ๊ฐ(lvalue)์ ์ป์ ์ ์์ต๋๋ค. void foo(int, int, int) { /* โฆ */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // ์๋ ๋ก๊ทธ foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // ๋จ์ ํ ๋น fa = ia๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค.assert(fa == [1F, 2F, 3F]);
์ถ์ฒ : opennet.ru