2009-05-18 34 views
4

這在我看來,因爲它使用的關鍵字「默認」作爲標識符這個功能將是無效的:這是一個有效的C++函數嗎?

int foo() 
{ 
    int default = 42; 
    return default; 
} 

但是,Microsoft C++編譯器(版本14.00.50727.762和15.00.30729.0)編譯代碼沒有警告或錯誤(使用最簡單的命令行:'cl foo.cpp')。

Dev-C++ 4.9.9.2編譯函數時會產生錯誤。

這似乎是這樣一個明顯的問題,我必須忽略一些東西。

編輯:litb挖出重複這個問題Default as a variable name

+4

這是微軟的C++編譯器中的一個已知錯誤。還有一個問題想知道,但我目前無法找到它。 – 2009-05-18 16:53:17

+2

這很有趣。用'auto'關鍵字(西班牙語的車)發生一次 – Tom 2009-05-18 16:55:21

回答

2

MS Visual C++ 6.0和g ++ 4.4.0產生大量錯誤 - 正如他們應該的那樣。我很難相信 C++編譯器會接受這個 - 你確定你真的編譯過這段代碼嗎?

1

默認爲reserved word,gcc 4.3.2不會編譯該代碼,不知道MS編譯器在那裏播放什麼!

0

不,默認是一個保留的C++關鍵字,這就是爲什麼它的編譯失敗。