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

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

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

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

double d = (1, 7);

также компилируется в порядке. Еще этот:

double d = 1, 7;

не компилируется. GCC-4.3.4 говорит

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

и Visual C ++ 10 говорит

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

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

Ответы на вопрос(4)

Ваш ответ на вопрос