Результат выражения запятой в D - PullRequest
0 голосов
/ 27 декабря 2018

https://dlang.org/spec/expression.html говорит: «Использование результатов с запятыми выражениями запрещено».Но следующая программа D без ошибок компилируется с GDC 8.2.0:

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

Объясните несоответствие.Это разрешено или нет?

1 Ответ

0 голосов
/ 27 декабря 2018

Изменение спецификации, запрещающее использование результата выражения с запятой, недавно.

По техническим и политическим причинам GDC основан на более старой версии эталонного компилятора, которому несколько лет.D изменяется несколько быстрее, чем Java, поэтому это ограничение отсутствует в GDC.

Обратите внимание, что версия языка D не привязана строго к остальной части коллекции компиляторов GNU.Чтобы увидеть языковую версию, вы можете использовать тестовую программу:

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