Izdanje prevoditelja D jezika 2.100

Programeri programskog jezika D predstavili su izdanje glavnog referentnog prevoditelja DMD 2.100.0, koji podržava GNU/Linux, Windows, macOS i FreeBSD sustave. Kôd prevoditelja distribuira se pod besplatnom licencom BSL (Boost Software License).

D je statički tipiziran, ima sintaksu sličnu C/C++ i pruža performanse kompajliranih jezika, dok posuđuje neke prednosti razvojne učinkovitosti i sigurnosti dinamičkih jezika. Na primjer, pruža podršku za asocijativne nizove, zaključivanje tipa, automatsko upravljanje memorijom, paralelno programiranje, izborni sakupljač smeća, sustav predložaka, komponente za metaprogramiranje, mogućnost korištenja C biblioteka i nekih C++ i Objective-C biblioteka.

Među promjenama u novom izdanju:

  • Stari stil preopterećenja operatora korišten u grani D1 je ukinut. Zamjenjuje opNeg, opAdd_r, opAddAssign itd. došli su opUnary, opBinary, opBinaryRight i opOpAssign. Stari stil preopterećenja operatora zastario je 2019. i javljat će se pogreška od izdanja 2.100.
  • Ključna riječ delete zastarjela je od 2018. Umjesto delete, trebali biste koristiti funkciju destroy ili core.memory.__delete.
  • Implementiran je novi atribut @mususe koji se može primijeniti na tipove struct i union kao alternativna metoda rukovanja pogreškama kada kod ne može obraditi iznimke (na primjer, u blokovima @nogc). Ako se izraz označen @mustuse atributom ne koristi u kodu, kompajler će generirati pogrešku.
  • Za statičke nizove dopuštena je upotreba svojstva ".tupleof" za dobivanje niza vrijednosti (lvalue) svakog elementa niza. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogni foo(1, 2, 3); plovak [3] fa; fa.tupleof = ia.tupleof; // jednostavna dodjela fa = ia rezultira pogreškom assert(fa == [1F, 2F, 3F]);

Izvor: opennet.ru

Dodajte komentar