D中逗号表达式的结果
The result of comma expressions in D
https://dlang.org/spec/expression.html 表示 "Using the result of comma expressions isn't allowed"。但是下面的 D 程序使用 GDC 8.2.0 编译没有错误:
void main() {
int x, y;
y = x++, y++;
}
解释差异。允许还是不允许?
禁止获取逗号表达式结果的规范更改是最近的。
出于技术和政治原因,GDC 基于参考编译器的旧版本,该版本已有数年历史。 D 的变化比 Java 稍快一些,因此 GDC 中不存在此限制。
请注意,D 语言版本并不严格依赖于 GNU 编译器集合的其余部分。查看语言版本,可以使用测试程序:
import std.compiler;
import std.stdio;
void main()
{
writeln(version_major, ".", version_minor);
}
https://dlang.org/spec/expression.html 表示 "Using the result of comma expressions isn't allowed"。但是下面的 D 程序使用 GDC 8.2.0 编译没有错误:
void main() {
int x, y;
y = x++, y++;
}
解释差异。允许还是不允许?
禁止获取逗号表达式结果的规范更改是最近的。
出于技术和政治原因,GDC 基于参考编译器的旧版本,该版本已有数年历史。 D 的变化比 Java 稍快一些,因此 GDC 中不存在此限制。
请注意,D 语言版本并不严格依赖于 GNU 编译器集合的其余部分。查看语言版本,可以使用测试程序:
import std.compiler;
import std.stdio;
void main()
{
writeln(version_major, ".", version_minor);
}