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