เดกเดฟ เดญเดพเดท เด•เด‚เดชเตˆเดฒเตผ เดฑเดฟเดฒเต€เดธเต 2.100

GNU/Linux, Windows, macOS, FreeBSD เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดงเดพเดจ เดฑเดซเดฑเตปเดธเต เด•เด‚เดชเตˆเดฒเตผ DMD 2.100.0 เดจเตเดฑเต† เดชเตเดฐเด•เดพเดถเดจเด‚ D เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเตเดŸเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต. เด•เด‚เดชเตˆเดฒเตผ เด•เต‹เดกเต เดธเต—เดœเดจเตเดฏ BSL (เดฌเต‚เดธเตเดฑเตเดฑเต เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดฒเตˆเดธเตปเดธเต) เดชเตเดฐเด•เดพเดฐเดฎเดพเดฃเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.

เดกเดฟ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, C/C++ เดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดšเดฒเดจเดพเดคเตเดฎเด• เดญเดพเดทเด•เดณเตเดŸเต† เดšเดฟเดฒ เดตเดฟเด•เดธเดจ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดคเดฏเตเด‚ เดธเตเดฐเด•เตเดทเดพ เด†เดจเตเด•เต‚เดฒเตเดฏเด™เตเด™เดณเตเด‚ เด•เดŸเดฎเต†เดŸเตเดคเตเดคเตเด•เตŠเดฃเตเดŸเต เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เดญเดพเดทเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดจเตฝเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดธเต‹เดธเดฟเดฏเต‡เดฑเตเดฑเต€เดตเต เด…เดฑเต‡เด•เตพ, เดŸเตˆเดชเตเดชเต เด…เดจเตเดฎเดพเดจเด‚, เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฎเต†เดฎเตเดฎเดฑเดฟ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต, เดชเดพเดฐเดฒเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต, เด’เดฐเต เด“เดชเตเดทเดฃเตฝ เด—เดพเตผเดฌเต‡เดœเต เด•เดณเด•เตเดŸเตผ, เด’เดฐเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเด‚, เดฎเต†เดฑเตเดฑเดพเดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด˜เดŸเด•เด™เตเด™เตพ, C เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต, เดšเดฟเดฒ C++, Objective-C เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เด‡เดคเต เดชเดฟเดจเตเดคเตเดฃ เดจเตฝเด•เตเดจเตเดจเต.

เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต† เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ:

  • D1 เดฌเตเดฐเดพเดžเตเดšเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด“เดตเตผเดฒเต‹เดกเดฟเด‚เด—เดฟเดจเตเดฑเต† เดชเดดเดฏ เดฐเต€เดคเดฟ เดจเดฟเตผเดคเตเดคเดฒเดพเด•เตเด•เดฟ. opNeg, opAdd_r, opAddAssign เดฎเตเดคเดฒเดพเดฏเดต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต. opUnary, opBinary, opBinaryRight, opOpAssign เดŽเดจเตเดจเดฟเดต เดตเดจเตเดจเต. เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด“เดตเตผเดฒเต‹เดกเดฟเด‚เด—เดฟเดจเตเดฑเต† เดชเดดเดฏ เดฐเต€เดคเดฟ 2019-เตฝ เด’เดดเดฟเดตเดพเด•เตเด•เดฟ, เดฑเดฟเดฒเต€เดธเต 2.100-เตฝ เด’เดฐเต เดชเดฟเดถเด•เต เดตเดฐเตเดคเตเดคเตเด‚.
  • เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตฝ เด•เต€เดตเต‡เดกเต 2018 เดฎเตเดคเตฝ เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚, เดจเดฟเด™เตเด™เตพ เดจเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ core.memory.__delete เดซเด‚เด—เตโ€Œเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚.
  • เด’เดฐเต เดชเตเดคเดฟเดฏ @mustuse เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ, เด…เดคเต เด•เต‹เดกเดฟเดจเต เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดชเตเดชเต‹เตพ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, @nogc เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดฟเตฝ) เดชเดฟเดถเด•เต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฌเดฆเตฝ เดฐเต€เดคเดฟเดฏเดพเดฏเดฟ struct, Union เดคเดฐเด™เตเด™เดณเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. @mustuse เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เด’เดฐเต เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เด•เต‹เดกเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เด‚เดชเตˆเดฒเตผ เด’เดฐเต เดชเดฟเดถเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.
  • เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดฑเต‡เด•เตพเด•เตเด•เดพเดฏเดฟ, เด…เดฑเต‡เดฏเตเดŸเต† เด“เดฐเต‹ เด˜เดŸเด•เดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† (lvalue) เด•เตเดฐเดฎเด‚ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต ".tupleof" เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต. void foo(int, int, int) { /* โ€ฆ */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // เด…เดจเดฒเต‹เด—เต เดซเต‚(1, 2, 3); เดซเตเดฒเต‹เดŸเตเดŸเต[3] fa; fa.tupleof = ia.tupleof; // เดฒเดณเดฟเดคเดฎเดพเดฏ เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต fa = ia เด’เดฐเต เดชเดฟเดถเด•เต เด‰เดฑเดชเตเดชเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต (fa == [1F, 2F, 3F]);

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•