C 未來會否有特性 非 release 版本可開啟陣列下標檢查 ?

時間 2021-05-29 22:56:36

1樓:海鵬

release/debug是build系統/編譯器提供的概念,和C++語言無關,談不到C++特性

所以你的問題應該是,gcc/clang/MSVC未來是否會增加開啟陣列下標檢查的功能

答案,你要去問對應的開發組

2樓:Curiosity

我覺得這完全不是語言的問題,因為operator可以過載,你要是想要這個特性,自己封裝乙個std::vector或者其他容器,重新實現operator就好了

3樓:暮無井見鈴

基本不可能。這麼做就相當於給原本不需要依賴庫的語核功能附加上依賴。

C++ 的發展傾向更可能是反過來:把原本需要執行時庫支援的傳統異常換成不太需要庫支援的靜態型別異常。

你不如期望這個:給內建陣列加上 at() 方法。雖然希望也比較渺茫。

幾年前( 2014~16 ) Herb 等人曾經想搞(方向有點區別的) unified call syntax ,但是後來被斃掉了。

4樓:布客飛龍

不可能,因為:

(1)C++不提倡使用從C繼承過來的特性,除非它是不可替代的。這個例子中,原生陣列顯然能被 std::array 或 std::vector 之一替換。

(2)如果C++不提倡乙個東西,就會把它做得難用。

5樓:d41d8c

MSVC的std::vector就是這樣的,然後很多人都希望去掉。

當然這和MSVC的具體實現有關係。MSVC在debug模式下完全不會進行函式內聯,而MSVC STL偏偏把最基本的操作都包裝成函式呼叫,結果乙個下標檢查要經過好幾個函式呼叫,效率非常低。

不過更接近於題目描述的大概是Clang和GCC的-fsanitize=bounds編譯引數(包含在-fsanitize=undefined內)。

C 20 有哪些值得注意的新特性?

雨果 令人期待的modules coroutines reflection暫時沒有,networking由於依賴executors被推遲到2023,協程再等段時間了。 zpan 反正我是準備等公司公升級到 CentOS 7 再考慮上 C 14 了,至於現在支援的 C 03,小於 11 版本的 C 根...

C 17 有哪些值得注意的新特性?

努力保持清醒的 最近一向有關TIOBE 程式設計言語排行榜,C 好像不進反退,不知為什麼會是這樣呢。話說C 寫起來感覺很不錯嘛,不知我們什麼感覺。turbo c 是老古董了,是DOS時代的C言語編譯器。Visual c 主要是用來編譯c 的,當然對c言語也是相容的。不過個人主張不要用Visual c...

C 裡面將物件例項賦值為null會否加速GC釋放資源?

haoshu zhao 如果是乙個函式中的區域性變數的話,我認為這樣做不會使GC更早進行釋放,也不會減少其進行釋放所用時間。我能想到的這樣做的好處就是當申請一塊比較大的記憶體時,記憶體剛好不夠,而且被設為null的變數所引用的物件比較大,且沒有被其它變數所引用。這樣,設定null就有可能使得申請記憶...