Почему эта двойная инициализация с запятой незаконна?
У меня есть три фрагмента кода. Вот этот:
1,7; //yes, that's all the code
компилируется нормально. Вот этот:
double d = (1, 7);
также компилируется в порядке. Еще этот:
double d = 1, 7;
не компилируется. GCC-4.3.4 говорит
ошибка: ожидаемый неквалифицированный идентификатор перед числовой константой
и Visual C ++ 10 говорит
ошибка C2059: синтаксическая ошибка: «константа»
Почему такая разница? Почему не все три компилируются с,
иметь одинаковый эффект во всех трех?