簡體   English   中英

DMD不強制限制foreach

[英]DMD doesn't force restrictions on foreach

根據http://dlang.org/statement.html上的“ Foreach限制”部分,以下代碼

int[] a;
int[] b;
foreach (int i; a) { 
    a = null; // error
    a.length += 10; // error 
    a = b; // error 
}
a = null; // ok

應該出錯。

但這在我使用2.063.2或master時不適合我。

這是回歸錯誤嗎?

它可能從未實現為實際錯誤。 我看不到一個開放的錯誤,但是我很難搜索bugzilla ...盡管,我確信該規范根本沒有實現為實際顯示錯誤,如果您實際執行,則將其保留為未定義的行為。

在很多地方,D文檔都說出了一個錯誤,而編譯器並未實際檢查。 C和C ++可能會使用術語“未定義的行為”而不是“錯誤”。 在C和C ++中,這樣的程序是有效的,您根本不知道它做什么。 在D中,它根本不被視為有效程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM