編譯器的作者對一些接下來可能發生的錯誤的理解一定勝過我們這些普通程式設計師,如果編譯器發出警告,就表明可能存在某種情況會造成一些錯誤,而這些錯誤你可能都沒想到過。所以我們不要忽略編譯器的警告!
class base
;class derive
;
這一段編譯後,編譯器會發出警告:
warning:d::f() hides virtual b::f()
這個警告是告訴你整個b::f()都被遮掩了,而不是說只是b::f()去掉了const。
如果你認為只是遮掩住了const,就大錯特錯。
嚴肅對待編譯器發出的警告資訊。努力在你的編譯器的最高(最嚴苛)警告級別下爭取「無任何警告」的榮譽。
不要過度依賴編譯器的報警能力,因為不同的編譯器對待事情的態度並不相同。一旦移植到另乙個編譯器上,你原本依賴的警告資訊有可能消失。tr1代表「technical report 1」。
在概括tr1之前看一下c++98列入c++標準程式庫有哪些主要成分:
下面展示tr1元件例項:
c++標準程式庫的主要機能由stl,iostream,locals組成,幷包含c99標準程式庫。
tr1新增了智慧型指標(shared_ptr),一般化函式指標(tr1::function),hash-based容器,正規表示式以及另外10個元件支援。
tr1自身知識乙份規範。為獲得tr1提供的好處,你需要乙份實物,乙個好的實物**是boost。為什麼要熟悉boost?
一是因為它和c++標準委員會之間有著很大聯絡:是由委員會成員創設的。
二是它接納程式庫的過程比較規範:
(1) 先傳送郵件投遞作品,boost開發者會評估這個程式庫的重要性,並且啟動初步審查程式。
(2) 然後開始「討論,琢磨,再次提交」迴圈週期。
(3) 最後準備好程式庫,正式提交。會有一位複審管理員出面確認你的程式符合boost的最低要求。比如最少通過兩個編譯器的,滿足可移植性。
(4) 然後你的提交正式進入boost社群,等待官方複審。期間會有志願者檢視你的程式庫的各種素材,並考慮諸如以下問題:
boost是乙個社群,也是乙個**。致力於免費、原始碼開放、同僚複審的c++程式庫開發。boost在c++標準化過程中扮演深具影響力的角色。
boost提供許多tr1元件實現品,以及其他許多程式庫。
effective C 9 雜項討論
九 雜項討論 條款52 寫了placement new也要寫placement delete 許多程式設計師習慣性地忽略編譯器警告.他們任務如果是問題真的很嚴重的話,編譯器就應該給乙個錯誤提示資訊而 不是警告資訊.這種想法看起來似乎很合理,但是在c 語言上,我覺得編譯器作者對 即將會爆發的事情應該比...
Effective C 讀書筆記 雜項討論
五十 三 條款53 不要輕忽編譯器的警告 1.嚴肅對待編譯器發出的警告訊息。努力在你的編譯器的最高 最嚴苛 警告級別下爭取 無任何警告 的榮譽 2.不要過度倚賴編譯器的報警能力,因為不同的編譯器對待事情的態度並不相同。一旦移值到另乙個編譯器上,你原本倚賴的警告資訊有可能消失 五十 四 條款54 讓自...
實驗吧安全雜項WP 九)
3.xdctf misc200 題目提示明文攻擊 什麼是明文攻擊呢?在所有密碼分析中,均假設攻擊者知道正在使用的密碼體制,該假設稱為kerckhoff假設。而已知明文攻擊也假設攻擊者能夠獲取部分明文和相應密文,如擷取資訊前段,通過該型別攻擊獲取加密方式,從而便於破解後段密文。在這個題目中意思是讓我們...