Почему эта двойная инициализация с запятой недопустима?

У меня есть три фрагмента кода. Этот:

1,7; //yes, that's all the code

компилируется нормально. Этот:

double d = (1, 7);

тоже хорошо компилируется. Однако этот:

double d = 1, 7;

не компилируется. gcc-4.3.4 сообщает об ошибке

: ожидаемый неквалифицированный идентификатор перед числовой константой

, а Visual C ++ 10 сообщает об ошибке

C2059: синтаксическая ошибка: 'константа'

Почему такая разница? Почему все три не компилируются с , , имея одинаковый эффект во всех трех?

5
задан sharptooth 15 December 2011 в 12:07
поделиться