在閱讀了this關於Ada和C++的有趣文章以及瞭解D對CTFE和常量參數專業化函數的支持之後,我想知道Ada風格範圍類型是否可以更容易/有效地實現D比在C++中。有沒有人可能已經寫過這樣的圖書館?D中的Ada風格範圍類型
如果這樣的範圍可以高效地實現並且對D中的開發人員友好,它可以用作在對確定性和類型和內存安全性要求較高的扇區中建立D的推動者,例如在航空電子設備中和汽車。 D將因此獲得更多的開發者興趣和更強大的財務支持。
在閱讀了this關於Ada和C++的有趣文章以及瞭解D對CTFE和常量參數專業化函數的支持之後,我想知道Ada風格範圍類型是否可以更容易/有效地實現D比在C++中。有沒有人可能已經寫過這樣的圖書館?D中的Ada風格範圍類型
如果這樣的範圍可以高效地實現並且對D中的開發人員友好,它可以用作在對確定性和類型和內存安全性要求較高的扇區中建立D的推動者,例如在航空電子設備中和汽車。 D將因此獲得更多的開發者興趣和更強大的財務支持。
具有標量(有界)變量很容易在D中作爲模板完成,事實上我記得我看到有人已經做了它的代碼。不幸的是,我不記得我在哪裏看到它。這就是說,恕我直言,沒有必要爲此成爲語言的一部分,而是標準庫的一部分。
(編輯:亞當提醒我的代碼:http://arsdnet.net/dcode/ranged.d)
範圍更廣泛的概念,安德烈的文章很好地解釋 - 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));
}
好讀:
不是那種類型的範圍,而是一個有界(標量)變量(像一個帶有最小和最大值的實數) –
感謝您指出這一點,棘輪。我編輯了文本。 – DejanLekic
感謝亞當 - 我記得我在某處看到它! :)這正是我想到的代碼。 :) – DejanLekic
這可以擴展到浮點類型(W /或W/O組裝援助)? –
是的,它應該是可能的。我不知道是否有像這裏的asm檢查那樣的浮點溢出標誌,但是如果result比較....我改變了文件(刷新鏈接)在asm上做靜態,所以現在它至少應該在float上工作。 –