亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  為何某些公司不允許使用 C++ STL?

為何某些公司不允許使用 C++ STL?

時間:2024-02-12

作者:陳甫鸼

來源:知乎,可點擊閱讀原文

你們公司允許使用C++STL嗎?各位老鐵可以在我價值¥2700的評論區留言。


最初開始禁用 C++ STL,是因為早期項目編碼實踐中留下的慣例,被后來的程序員繼承下來。老項目中這種選擇尤其地多。不過如果有人將其上升到公司行為在不同項目中全面禁用 STL,則沒有必要,而且我傾向于做這種決定的人并不理解 C++ 編譯系統

一般來說,項目中禁用 C++ 多見于兩種具體場景:項目的產出產品為函數庫 OR 需要引用第三方函數庫。


具體地來說,有三個主要原因


第一個原因是二進制邊界混亂。對需要在項目中使用第三方函數庫的程序員來說,二進制邊界是個頭痛的問題。C++ 在這一方面本身就處理得不算好,加上模板后起到的是雪上加霜的后果。沒有經驗的程序員會貪圖方便而在公開頭文件中使用 C++ 模板,如果這時調用方的編譯器選項設置或 STL 版本和編譯方不同,那么就可能出現同樣的頭文件在不同的環境下二進制布局不符的情況。


順便說一句,在過去十年里,各個主流編譯器附帶的 STL 版本變化節奏不慢,所以這種由于編譯環境不同而導致的 bug 并不算罕見,但缺乏匯編知識的用戶難以排查。

第二個原因是不愿使用異常。如今除了 Android 上的 STLPort 關閉異常,大部分主流 C++ STL 實現里都無法脫離異常使用 STL。異常帶來的問題主要是兩個:性能下降,代碼膨脹。這幾年 C++ 編譯器在性能方面的改進很多,good path 的性能問題已經基本沒有,但代碼膨脹問題卻沒有太多改善,甚至這個性能問題的一部分解決方案就是以代碼膨脹為代價。我寫過一篇短文比對過 Android 上 gcc 4.6 在有無異常的情況下的匯編代碼邏輯,可以看到,啟動異常時生成的匯編代碼量多出了相當一部分(我的例子中是 50%),用于處理各種隱含代碼中的異常問題。這一條在手機系統中有時候會引起意想不到的麻煩,比如軟件升級后導致 app 在低存儲容量的手機中安裝失敗。順便說一句,這個問題并不是 gcc 獨有,clang 上生成的代碼是一樣的。參考:http://dummydigit.net/posts/2014-01-01-23-30-1.html


最后一個原因是 C 兼容。嚴格地說,STL 在這個問題上算是躺槍,這個坑在很多具體的場景中也是因為異常而引入,但這個問題的麻煩程度比前兩個問題更高。比如 gcc 在編譯純 C 代碼時默認關閉 -fexceptions 選項,因此這樣編譯出來的代碼中沒有異常處理相關的棧展開。如果某個 C++ 項目引用了一個第三方 C 項目,它很難確保那個 C 項目給出的二進制代碼中正確進行了異常處理并保證代碼服從異常安全操作。這種場景下混用 C/C++ ,就可能在拋出異常時莫名其妙地崩潰或者出現 C 代碼區段中的資源泄漏,特別是 expat 那種大量利用回調的代碼結構。要規避這種風險并非不可能,但需要 C 的架構部分做修改,比如使用 DOM 那種樹形結構,這種做法對歷史項目而言又很難辦到。換言之,如果一個項目出于種種原因需要保持 C 兼容,而 STL 就屬于其中一個不可控的變數,與其相信程序員不犯錯,不如直接禁用更可控一些。參考:Code Gen Options


要解決二進制相關的問題很簡單:整個項目的所有相關代碼在同一個代碼基上編譯,強制打開編譯選項添加異常代碼,并去除一切二進制依賴。但對很多小公司來說,引入這樣的系統對配置管理的要求較高。如果一部分依賴關系來自自己并不了解的第三方代碼,輕易修改編譯選項可能帶來的風險與第三方代碼庫的規模成正比。退一步說,即便團隊里真的有強大的配置管理工程師能夠搞定一切,他們也不會有能力解決代碼膨脹問題,除非他們有權決定換一個編譯器。相比之下,前面朋友所說的所謂性能或者編譯出錯時糟糕的可讀性,在我看來反倒是次要因素,而且這些缺陷都正在新的編譯器中逐步得到解決或改善,比如 clang。


所以那些選擇禁用 STL 的早期項目負責人,總有一些確實的理由,沒有人那么別扭地想跟開發效率過不去。至于后來的人是真的仔細想過這些細節還是人云亦云,那是另一個問題。



往期推薦


1、少寫點
if-else吧,它的效率有多低你知道嗎?
2、年度原創好文匯總
3、深度好文|面試官:進程和線程,我只問這19個問題
4、
他來了,他來了,C+
+17新特性精華都在這了
5、一文讓你搞懂設計模式
6、C++11新特性,所有知識點都在這了!




C++學習資料免費獲取方法:關注程序喵大人,后臺回復“程序喵”即可免費獲取40萬字C++進階獨家學習資料。

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区乱码aⅴ| 午夜一区二区三区在线观看| 国产精品国产三级国产aⅴ入口 | 一区二区三区我不卡| 亚洲人成人一区二区在线观看| 亚洲精品欧美日韩专区| 亚洲欧美在线一区二区| 欧美韩日高清| 黑人巨大精品欧美一区二区| 亚洲一区精彩视频| 欧美激情在线免费观看| 激情懂色av一区av二区av| 中文亚洲视频在线| 欧美精品一区二区在线观看 | 蜜臀av一级做a爰片久久| 欧美三级在线| 亚洲日本成人女熟在线观看| 久久天堂国产精品| 国产午夜精品理论片a级大结局 | 亚洲欧美国产日韩天堂区| 免费亚洲电影在线| 国产在线不卡精品| 欧美中文在线免费| 国产欧美成人| 亚洲欧美亚洲| 国产精品国产三级国产普通话蜜臀 | 亚洲激情国产| 久久综合久久久| 激情综合网址| 噜噜爱69成人精品| 亚洲国产日韩美| 美女视频黄 久久| 亚洲激情网站免费观看| 欧美国产精品人人做人人爱| 最新69国产成人精品视频免费| 久久米奇亚洲| 亚洲茄子视频| 欧美日韩亚洲一区| 亚洲午夜精品久久久久久app| 欧美日韩一区二区三区| 亚洲一级片在线观看| 国产精品人成在线观看免费 | 免费观看成人www动漫视频| 狠狠综合久久| 欧美1区视频| 一本色道久久综合亚洲精品按摩 | 欧美国产日韩免费| 一区二区成人精品| 国产美女搞久久| 久久夜色精品国产亚洲aⅴ| 亚洲黄色大片| 国产精品伦一区| 久久久精品日韩| 日韩视频在线观看| 国产精品制服诱惑| 欧美1区2区| 香蕉亚洲视频| 最新日韩欧美| 国产精品天天摸av网| 久久天天躁狠狠躁夜夜av| 亚洲精品久久久久久一区二区 | 亚洲综合色视频| 精久久久久久| 欧美偷拍另类| 久久亚洲精品伦理| 亚洲一区二区在线免费观看视频 | 国产精品日韩精品欧美精品| 欧美自拍丝袜亚洲| 99精品视频免费观看| 黄色工厂这里只有精品| 欧美乱妇高清无乱码| 欧美在线免费| 亚洲一区二区高清视频| 亚洲大胆在线| 国产欧美日韩综合精品二区| 欧美激情一区二区久久久| 欧美在线高清| 亚洲欧美日韩国产一区| 亚洲日本精品国产第一区| 国产亚洲精品bt天堂精选| 欧美三级午夜理伦三级中视频| 久久躁狠狠躁夜夜爽| 亚洲午夜电影| 一二三区精品| 99热在线精品观看| 亚洲精品日韩精品| 亚洲高清一区二| 一区二区自拍| 国内成+人亚洲| 国产日韩欧美综合| 国产精品爽爽爽| 国产精品久久二区二区| 欧美美女操人视频| 欧美国产另类| 欧美人与性动交α欧美精品济南到| 久久综合狠狠| 免费亚洲一区二区| 欧美bbbxxxxx| 欧美精品麻豆| 欧美日韩在线视频一区二区| 欧美久久视频| 欧美日韩精品免费观看视频完整| 欧美大片一区二区三区| 欧美激情亚洲另类| 欧美精品一卡二卡| 欧美日韩第一页| 欧美日韩在线三级| 国产精品福利片| 国产精品综合不卡av| 国产日韩精品一区二区三区在线| 国产精品入口麻豆原神| 国产嫩草一区二区三区在线观看 | 久久精品亚洲精品| 久久婷婷国产综合精品青草| 卡一卡二国产精品| 欧美1区2区| 国产精品久久久久久av下载红粉 | 在线视频欧美日韩| 亚洲影音一区| 久久久久久亚洲精品不卡4k岛国| 久久激情一区| 欧美国产精品日韩| 国产精品黄视频| 激情综合自拍| 在线视频欧美一区| 久久久青草青青国产亚洲免观| 蜜臀va亚洲va欧美va天堂| 欧美精品一区在线| 国产人成精品一区二区三| 亚洲电影免费| 亚洲深夜激情| 免费中文字幕日韩欧美| 欧美丝袜第一区| 伊人蜜桃色噜噜激情综合| 日韩午夜av电影| 久久久久久久91| 欧美吻胸吃奶大尺度电影| 狠狠做深爱婷婷久久综合一区| 亚洲伦理在线免费看| 欧美影院午夜播放| 欧美日韩免费观看一区二区三区| 国产亚洲福利| 亚洲午夜未删减在线观看| 久久久久国产精品www| 欧美日韩在线免费| 亚洲电影av在线| 欧美在线亚洲在线| 欧美视频官网| 亚洲欧洲视频在线| 久久久久九九视频| 国产精品亚洲综合天堂夜夜| 亚洲人体影院| 老司机久久99久久精品播放免费 | 玖玖视频精品| 国产精品一区二区三区久久| 91久久嫩草影院一区二区| 久久国产黑丝| 国产精品久久久久aaaa| 最新日韩av| 免费观看成人www动漫视频| 国产在线精品一区二区夜色| 亚洲欧美在线一区二区| 欧美午夜电影完整版| 亚洲精品视频啊美女在线直播| 久久九九热re6这里有精品| 国产精品一区二区三区久久久| 亚洲最新合集| 欧美日韩一区二区三区在线| 亚洲另类自拍| 欧美日韩ab| 99精品视频免费观看| 欧美日韩成人一区| 亚洲人成网站在线播| 欧美国产日韩一区二区| 亚洲国产欧美不卡在线观看| 看片网站欧美日韩| 亚洲电影免费观看高清完整版在线 | 久久精品亚洲精品| 国产啪精品视频| 欧美在线www| 激情婷婷欧美| 免费看成人av| 99re这里只有精品6| 欧美日韩亚洲在线| 亚洲制服欧美中文字幕中文字幕| 欧美日韩激情网| 亚洲综合日韩在线| 国产综合视频| 欧美成年视频| 亚洲少妇一区| 国模叶桐国产精品一区| 久热精品视频| 一区二区三区四区五区在线 | 蜜臀av性久久久久蜜臀aⅴ| 精品电影一区| 欧美日韩精品伦理作品在线免费观看| 在线视频欧美一区| 国产视频自拍一区| 欧美韩国日本综合| 性欧美大战久久久久久久免费观看 |