[英]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.