C++漫談
從我會碼字母那天起,這是我的信仰
摘要: 有了消息映射表,如何利用呢?消息如何被分門別類的派發(fā)出去的?
閱讀全文
摘要: MFC中的消息循環(huán)呢?我們熟悉的switch……case……到哪里去了?
閱讀全文
摘要: 能夠在運行時發(fā)現(xiàn)一個對象的類型,就可以在運行時動態(tài)的創(chuàng)建一個對象。在一個類庫中,擁有統(tǒng)一的對象創(chuàng)建方式是非常重要的。
閱讀全文
摘要: 翻騰了一下 MFC 的源代碼,就有了這一系列的東西,全當(dāng)是故地重游了一番。言歸正傳吧。文章中所有的代碼都提取自MFC 7.0
閱讀全文
摘要: 給定任意2個類型U和T,你如何來確定U是否繼承于T呢?在編譯時發(fā)現(xiàn)兩個類型的這種關(guān)系對于泛型庫的優(yōu)化是極為重要的。在泛型函數(shù)中,如果某個類實現(xiàn)了特定的接口,你可以根據(jù)這種關(guān)系為其利用特定的優(yōu)化算法。另外,如果我們可以在編譯期決定2個類的關(guān)系,我們也可以遠離dynamic_cast,從而避免運行時的效率開銷。
閱讀全文
摘要: 我們可以用不同的整數(shù)來實例化同一個模板,從而構(gòu)造不同的類型,進而在編譯期執(zhí)行某些抉擇。
閱讀全文
摘要: 關(guān)于virtual desctructor的詳細討論。同樣來自于《Effective C++》3rd Edition。
閱讀全文
摘要: 你可能經(jīng)常需要利用運行時斷言技術(shù),它可以方便地測試前提條件。但是,隨著Metaprogramming概念的出現(xiàn),編譯時斷言技術(shù)也已經(jīng)和runtime assertion一樣的普遍了。如何在編譯時進行斷言呢?其實,方法只有一個,就是讓編譯器生成一條錯誤信息,但是編譯器生成的錯誤信息信息性往往有又理想。并且,即使你在一種編譯上設(shè)計了一種方案,你也很難把它移植到其他的編譯器上。我們通過其實現(xiàn)方法的改進和一個Boost中的例子,來看看如何更好的實現(xiàn)這種技術(shù)。
閱讀全文