3

AdaとC++に関するこの興味深い記事を読み、DによるCTFEのサポートと関数の定数パラメーターの特殊化を知った後、Ada-StyleRangeタイプをC++よりもDで簡単/効率的に実装できるかどうか疑問に思います。誰かがすでにそのようなライブラリを書いたのでしょうか?

このような範囲を効率的かつ開発者に優しいDで実装できれば、航空電子工学や自動車など、決定論とタイプおよびメモリの安全性(Dはすでに輝いていました)が要求されるセクターでDを確立するためのプロモーターとして使用できます。これにより、Dは、より多くの開発者の関心とより強力な財政的支援を得ることができます。

4

2 に答える 2

4

スカラー(束縛)変数を持つことは、テンプレートとしてDで簡単に実行できます。実際、誰かがすでに実行したコードを見たのを覚えています。残念ながら、どこで見たのか覚えていません。とはいえ、これが言語の一部になる必要はなく、標準ライブラリの一部になる必要はありません。

編集:アダムは私にコードを思い出させました:http://arsdnet.net/dcode/ranged.d

範囲は、Andreiの記事(http://www.informit.com/articles/printerfriendly.aspx?p=1407357&rll=1 )でうまく説明されているより広い概念です。このタイプの範囲は現在、Dのコアコンセプトです。Dのスライスは、最も強力な範囲であるRandomAccessRangeの実装です。

例:

import std.stdio;
import std.algorithm;

void main()
{
    int[] values = [ 1, 20, 7, 11 ]; // values is a RandomAcessRange
    writeln(filter!(value => value > 10)(values));
}

良い読み物:

  1. http://ddili.org/ders/d.en/ranges.html
  2. http://www.drdobbs.com/architecture-and-design/component-programming-in-d/240008321
  3. http://dlang.org/phobos/std_range.html
于 2012-11-19T17:43:42.793 に答える
3

オーバーフローチェックを使用して整数の最小値と最大値を実行する小さなコードをいくつか作成しました。

http://arsdnet.net/dcode/ranged.d

これは概念実証にすぎませんでしたが、非常にうまく機能するとは思えませんが、インライン化されている場合は可能性があります。

于 2012-11-19T18:14:57.283 に答える