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