繁体   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