D-taalsamestellervrystelling 2.100

Die ontwikkelaars van die D-programmeertaal het die vrystelling van die hoofverwysingssamesteller DMD 2.100.0 aangebied, wat GNU/Linux-, Windows-, macOS- en FreeBSD-stelsels ondersteun. Die samestellerkode word onder die gratis BSL (Boost Software License) versprei.

D is staties getik, het 'n sintaksis soortgelyk aan C/C++, en bied die werkverrigting van saamgestelde tale, terwyl dit van die ontwikkelingsdoeltreffendheid en sekuriteitsvoordele van dinamiese tale leen. Dit bied byvoorbeeld ondersteuning vir assosiatiewe skikkings, tipe-afleiding, outomatiese geheuebestuur, parallelle programmering, 'n opsionele vullisverwyderaar, 'n sjabloonstelsel, metaprogrammeringskomponente, die vermoë om C-biblioteke te gebruik, en sommige C++- en Objective-C-biblioteke.

Onder die veranderinge in die nuwe weergawe:

  • Die ou styl van operateuroorlading wat in die D1-tak gebruik word, is gestaak. Vervang opNeg, opAdd_r, opAddAssign, ens. het opUnary, opBinary, opBinaryRight en opOpAssign gekom. Die ou styl van operateuroorlaai is in 2019 afgekeur en sal 'n fout veroorsaak vanaf vrystelling 2.100.
  • Die skrapsleutelwoord is sedert 2018 opgeskort. In plaas van delete, moet jy die vernietig of core.memory.__delete-funksie gebruik.
  • 'n Nuwe @mustuse-kenmerk is geïmplementeer wat op struct- en unietipes toegepas kan word as 'n alternatiewe metode van fouthantering wanneer die kode nie uitsonderings kan hanteer nie (byvoorbeeld in @nogc-blokke). As 'n uitdrukking gemerk met die @mustuse-kenmerk nie in kode gebruik word nie, sal die samesteller 'n fout genereer.
  • Vir statiese skikkings word die gebruik van die ".tupleof"-eienskap toegelaat om die volgorde van waardes (lvalue) van elke element van die skikking te verkry. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analoog foo(1, 2, 3); dryf[3] fa; fa.tupleof = ia.tupleof; // eenvoudige opdrag fa = ia lei tot 'n foutbewering(fa == [1F, 2F, 3F]);

Bron: opennet.ru

Voeg 'n opmerking