逗号表达式的结果

逗号表达式的结果

https://dlang.org/spec/expression.html说:“不允许使用逗号表达式的结果”。但是以下D程序使用GDC 8.2.0编译时没有错误:

void main() {
  int x, y;
  y = x++, y++;
}

解释差异。是否允许?

最佳答案

最近禁止更改规格以禁止使用逗号表达式的结果。

出于技术和政治原因,GDC基于引用编译器的较旧版本,而该引用编译器已有多年历史。 D的更改速度比Java快,因此GDC中不存在此限制。

请注意,D语言版本并不严格与GNU编译器集合的其余部分绑定(bind)。要查看语言版本,可以使用测试程序:

import std.compiler;
import std.stdio;
void main()
{
  writeln(version_major, ".", version_minor);
}

关于compiler-errors - D中逗号表达式的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53949395/

10-09 02:54