double x = 0,1;
не компилируется (примеряет MSVC9.0). Ошибка
C2059 syntax error : 'constant'
я делать Понимаете, что вместо точки есть запятая, но не следует ли интерпретировать приведенную выше строку следующим образом?
double x = (0,1); //which is double x = 1;
Кстати, инициализация успешно компилируется с круглыми скобками.
Я думал в том же духе, что operator ,
имеет более низкий приоритет, чем operator =
, но в этом случае =
не оператор, так что это не должно быть проблемой. Какие синтаксические правила определяют это
double x = 0,1;
должен быть незаконным?
Во время объявлений запятая при отсутствии скобок рассматривается как разделитель между объявлениями. Например:
double x = 0, y = 1;
или же
double x = 0, y;
То, что вы ввели, является эквивалентом
double x = 0;
double 1;
Что, очевидно, не правильно.
Ну, это рассматривается как
double x = 0; double 1;
вот почему. Так же, как вы написали бы
double x = 0, y;
Это синтаксис для объявления, вы просто пытаетесь объявить 1
как переменная (что неверно). Не думайте, что это намного больше …