2011-08-01 38 views
2

爲什麼visual express 2008在輸入std::時不給我選項system雖然我聽說它是​​<cstdlib>的一部分?爲什麼visual express 2008不能自動完成std :: system

+3

@Kyle Joseph不知道爲什麼會發生這種情況,但我也注意到它幾乎包含所有C++包裝的C標準頭文件。它不會自動完成函數名稱,但是一旦您鍵入並打開括號,就會彈出一個顯示參數和類型的彈出窗口。看起來像一個Intellisense錯誤給我。 – Praetorian

回答

2

它可能是該系統在頂層命名空間中定義,並且只能通過using語句包含在std中。這樣,它實際上不會在名稱空間std中,而只是通過它可以訪問。

只有一個頂層或全局命名空間::。 So :: global就是那個功能。如果他們實施了功能

void system(...); 
namespace std { using ::system; } 

這將解釋此行爲。系統簽名可能是錯誤的,沒有檢查它。

+0

有趣的,這聽起來很合理。什麼算作頂級命名空間,你的意思是'std'是這些頂級命名空間之一的一部分嗎? – UzumakiDev

相關問題