在C ++中,可以static在翻譯單元中使用關(guān)鍵字來影響符號(變量或函數(shù)聲明)的可見性。在n3092中,已棄用:附件D.2 [depr.static]在命名空間范圍內(nèi)聲明對象時,不建議使用static關(guān)鍵字(請參閱3.3.6)。在n3225中,已將其刪除。在我能找到的唯一的文章是有點非正式的。它確實強調(diào)了,為了與C兼容(以及將C程序編譯為C ++的能力),棄用是令人討厭的。但是,直接將C程序編譯為C ++可能已經(jīng)令人沮喪,因此我不確定是否值得考慮。有誰知道為什么要更改?
3 回答

慕哥9229398
TA貢獻1877條經(jīng)驗 獲得超6個贊
在《C ++標(biāo)準(zhǔn)核心語言缺陷報告和已接受的問題》中,修訂版94位于1012下。不贊成使用靜態(tài) `他們指出:
盡管7.3.1.1 [namespace.unnamed]指出,由于未命名的命名空間提供了更好的選擇,所以不建議使用static關(guān)鍵字在命名空間范圍內(nèi)聲明變量,但在可預(yù)見的將來,該功能不太可能在任何時候被刪除。 。
基本上說,棄用static并沒有任何意義。它永遠(yuǎn)不會從C ++中刪除,它仍然很有用,因為如果您只想聲明具有內(nèi)部鏈接的函數(shù)或?qū)ο?,則不需要使用未命名空間的樣板代碼。

慕妹3242003
TA貢獻1824條經(jīng)驗 獲得超6個贊
不論是否贊成,刪除此語言功能都會破壞現(xiàn)有的代碼并惹惱人們。
整個靜態(tài)棄用只是沿著“匿名名稱空間比靜態(tài)更好”和“引用是更好的指針”的想法。大聲笑。
- 3 回答
- 0 關(guān)注
- 529 瀏覽
添加回答
舉報
0/150
提交
取消