เชกเซ€ เชญเชพเชทเชพ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชฐเซ€เชฒเซ€เช 2.100

เชกเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เช เชฎเซเช–เซเชฏ เชธเช‚เชฆเชฐเซเชญ เช•เชฎเซเชชเชพเช‡เชฒเชฐ DMD 2.100.0 เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เชฐเชœเซ‚ เช•เชฐเซเชฏเซเช‚, เชœเซ‡ GNU/Linux, Windows, macOS เช…เชจเซ‡ FreeBSD เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เช•เชฎเซเชชเชพเชˆเชฒเชฐ เช•เซ‹เชก เชฎเชซเชค BSL (เชฌเซ‚เชธเซเชŸ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฒเชพเช‡เชธเชจเซเชธ) เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

D เชธเซเชŸเซ‡เชŸเชฟเช•เชฒเซ€ เชŸเชพเชˆเชช เชฅเชฏเซ‡เชฒ เช›เซ‡, เชคเซ‡เชฎเชพเช‚ C/C++ เชœเซ‡เชตเซเช‚ เชœ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เช›เซ‡, เช…เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชญเชพเชทเชพเช“เชจเซ€ เชตเชฟเช•เชพเชธ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช…เชจเซ‡ เชธเซเชฐเช•เซเชทเชพ เชฒเชพเชญเซ‹เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช• เช‰เชงเชพเชฐ เชฒเซ‡เชคเซ€ เชตเช–เชคเซ‡ เชธเช‚เช•เชฒเชฟเชค เชญเชพเชทเชพเช“เชจเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡ เชธเชนเชฏเซ‹เช—เซ€ เชเชฐเซ‡, เชชเซเชฐเช•เชพเชฐ เช…เชจเซเชฎเชพเชจ, เชธเซเชตเชšเชพเชฒเชฟเชค เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ, เชธเชฎเชพเช‚เชคเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—, เชตเซˆเช•เชฒเซเชชเชฟเช• เช—เชพเชฐเซเชฌเซ‡เชœ เช•เชฒเซ‡เช•เซเชŸเชฐ, เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชธเชฟเชธเซเชŸเชฎ, เชฎเซ‡เชŸเชพเชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เช˜เชŸเช•เซ‹, C เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• C++ เช…เชจเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸเชฟเชต-C เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡.

เชจเชตเชพ เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชชเซˆเช•เซ€:

  • D1 เชถเชพเช–เชพเชฎเชพเช‚ เช“เชชเชฐเซ‡เชŸเชฐ เช“เชตเชฐเชฒเซ‹เชกเชฟเช‚เช—เชจเซ€ เชœเซ‚เชจเซ€ เชถเซˆเชฒเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. opNeg, opAdd_r, opAddAssign, เชตเช—เซ‡เชฐเซ‡เชจเซ‡ เชฌเชฆเชฒเซ‡ เช›เซ‡. opUnary, opBinary, opBinaryRight เช…เชจเซ‡ opOpAssign เช†เชตเซเชฏเชพ. เช“เชชเชฐเซ‡เชŸเชฐ เช“เชตเชฐเชฒเซ‹เชกเชฟเช‚เช—เชจเซ€ เชœเซ‚เชจเซ€ เชถเซˆเชฒเซ€ 2019 เชฎเชพเช‚ เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ เชฐเชฟเชฒเซ€เช 2.100 เชฎเซเชœเชฌ เชญเซ‚เชฒ เชซเซ‡เช‚เช•เชถเซ‡.
  • เชกเชฟเชฒเซ€เชŸ เช•เซ€เชตเชฐเซเชก 2018 เชฅเซ€ เชจเชพเชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชคเชฎเชพเชฐเซ‡ เชจเชพเชถ เช…เชฅเชตเชพ core.memory.__delete เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช.
  • เชเช• เชจเชตเซ€ @mustuse เชตเชฟเชถเซ‡เชทเชคเชพ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เชœเซ‡ เชธเซเชŸเซเชฐเช•เซเชšเชฐ เช…เชจเซ‡ เชฏเซเชจเชฟเชฏเชจ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‡ เชญเซ‚เชฒ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช—เชจเซ€ เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเชฆเซเชงเชคเชฟ เชคเชฐเซ€เช•เซ‡ เชฒเชพเช—เซ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชก เช…เชชเชตเชพเชฆเซ‹เชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, @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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹