double x = 0,1;
不能編譯(在MSVC9.0上嘗試)。該錯誤是爲什麼double x = 0,1;沒有編譯?
C2059 syntax error : 'constant'
我做意識到有一個逗號出現,而不是一個點,但不應線以上被解釋爲以下?
double x = (0,1); //which is double x = 1;
順便說一下,初始化用括號編譯成功。
我在想operator ,
的優先級低於operator =
,但在這種情況下,=
是沒有運營商,所以這不應該是一個問題。什麼語法規則確定
double x = 0,1;
應該是非法的?
難道這不就是因爲通常你有'double x = 0,y;'? – Nabb
有趣的問題,最初我認爲它也應該編譯。 :) –
請注意,如果你寫'double(x)(1),y;'這是一個有效的聲明,但也可以解析爲一個表達式。 –