Compiler errors D中逗号表达式的结果

Compiler errors D中逗号表达式的结果,compiler-errors,d,Compiler Errors,D,表示不允许使用逗号表达式的结果。但以下D程序使用GDC 8.2.0编译时没有错误: void main() { int x, y; y = x++, y++; } 解释差异。是否允许?禁止获取逗号表达式结果的规范更改是最近的 出于技术和政治原因,GDC基于参考编译器的较旧版本,已有几年历史。D的变化速度比Java快一些,所以GDC中不存在这种限制 请注意,D语言版本并没有严格地绑定到GNU编译器集合的其余部分。要查看语言版本,可以使用测试程序: import std.compiler;

表示不允许使用逗号表达式的结果。但以下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);
}

即使是最新的dmd也不会抛出错误!但是,既然规范已经说明了这一点,那么无论如何都不应该使用它,因为错误可能会在任何时候实现。也可能不是,有一些规范定义的错误,编译器都允许并且已经存在多年,然后人们说我们不想通过正确实现它来破坏代码。啊。