D 言語コンパイラ リリース 2.100

D プログラミング言語の開発者は、GNU/Linux、Windows、macOS、および FreeBSD システムをサポートするメインのリファレンス コンパイラ DMD 2.100.0 のリリースを発表しました。コンパイラ コードは、無料の BSL (Boost Software License) に基づいて配布されます。

D は静的に型指定され、C/C++ に似た構文を持ち、動的言語の開発効率とセキュリティの利点の一部を借りながら、コンパイルされた言語のパフォーマンスを提供します。たとえば、連想配列、型推論、自動メモリ管理、並列プログラミング、オプションのガベージ コレクター、テンプレート システム、メタプログラミング コンポーネント、C ライブラリ、および一部の C++ および Objective-C ライブラリを使用する機能のサポートを提供します。

新しいリリースの変更点には次のようなものがあります。

  • D1 ブランチで使用されていた古いスタイルの演算子のオーバーロードは廃止されました。 opNeg、opAdd_r、opAddAssign などを置き換えます。 opUnary、opBinary、opBinaryRight、opOpAssign が登場しました。古いスタイルの演算子のオーバーロードは 2019 年に非推奨となり、リリース 2.100 ではエラーがスローされます。
  • delete キーワードは 2018 年以降非推奨になりました。削除の代わりに、destroy または 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); float[3] fa; fa.tupleof = ia.tupleof; // 単純な代入 fa = ia ではエラーが発生しますassert(fa == [1F, 2F, 3F]);

出所: オープンネット.ru

コメントを追加します