D sprog compiler udgivelse 2.100

Udviklerne af D-programmeringssproget præsenterede udgivelsen af ​​hovedreferencekompileren DMD 2.100.0, som understøtter GNU/Linux, Windows, macOS og FreeBSD-systemer. Compilerkoden distribueres under den gratis BSL (Boost Software License).

D er statisk skrevet, har en syntaks svarende til C/C++ og leverer ydelsen af ​​kompilerede sprog, mens den låner nogle af udviklingseffektiviteten og sikkerhedsfordelene ved dynamiske sprog. For eksempel giver det understøttelse af associative arrays, typeinferens, automatisk hukommelsesstyring, parallel programmering, en valgfri skraldeopsamler, et skabelonsystem, metaprogrammeringskomponenter, muligheden for at bruge C-biblioteker og nogle C++- og Objective-C-biblioteker.

Blandt ændringerne i den nye udgivelse:

  • Den gamle stil med operatøroverbelastning, der blev brugt i D1-grenen, er blevet afbrudt. Erstatter opNeg, opAdd_r, opAddAssign osv. kom opUnary, opBinary, opBinaryRight og opOpAssign. Den gamle stil med operatøroverbelastning blev forældet i 2019 og vil give en fejl fra release 2.100.
  • Slet søgeordet har været udfaset siden 2018. I stedet for at slette, skal du bruge funktionen destroy eller core.memory.__delete.
  • Der er implementeret en ny @mustuse-attribut, der kan anvendes på struct- og unionstyper som en alternativ metode til fejlhåndtering, når koden ikke kan håndtere undtagelser (for eksempel i @nogc-blokke). Hvis et udtryk markeret med @mustuse-attributten ikke bruges i kode, vil compileren generere en fejl.
  • For statiske arrays tillades brugen af ​​egenskaben ".tupleof" til at opnå rækkefølgen af ​​værdier (lvalue) for hvert element i arrayet. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analog foo(1, 2, 3); flyde[3] fa; fa.tupleof = ia.tupleof; // simpel tildeling fa = ia resulterer i en fejlangivelse(fa == [1F, 2F, 3F]);

Kilde: opennet.ru

Tilføj en kommentar