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);
}