Kompilátor jazyka D verze 2.100

Vývojáři programovacího jazyka D představili vydání hlavního referenčního kompilátoru DMD 2.100.0, který podporuje systémy GNU/Linux, Windows, macOS a FreeBSD. Kód kompilátoru je distribuován pod bezplatnou BSL (Boost Software License).

D je staticky typováno, má syntaxi podobnou C/C++ a poskytuje výkon kompilovaných jazyků, přičemž si vypůjčuje některé z výhod vývoje a bezpečnosti dynamických jazyků. Poskytuje například podporu pro asociativní pole, typové odvozování, automatickou správu paměti, paralelní programování, volitelný garbage collector, systém šablon, komponenty metaprogramování, možnost používat knihovny C a některé knihovny C++ a Objective-C.

Mezi změny v nové verzi:

  • Starý styl přetěžování operátorů používaný ve větvi D1 byl ukončen. Nahrazeny opNeg, opAdd_r, opAddAssign atd. přišel opUnary, opBinary, opBinaryRight a opOpAssign. Starý styl přetěžování operátorů byl v roce 2019 zastaralý a od vydání 2.100 vyvolá chybu.
  • Klíčové slovo delete je od roku 2018 zastaralé. Místo delete byste měli použít funkci cancel nebo core.memory.__delete.
  • Byl implementován nový atribut @mustuse, který lze použít na typy struct a union jako alternativní metodu zpracování chyb, když kód nemůže zpracovat výjimky (například v blocích @nogc). Pokud výraz označený atributem @mustuse není v kódu použit, kompilátor vygeneruje chybu.
  • U statických polí je povoleno použití vlastnosti ".tupleof" k získání posloupnosti hodnot (lvalue) každého prvku pole. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogové foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // jednoduché přiřazení fa = ia má za následek chybové hlášení (fa == [1F, 2F, 3F]);

Zdroj: opennet.ru

Přidat komentář