C++漫谈
从我会码字母那天起,这是我的信仰
摘要: 有了消息映射表,如何利用呢?消息如何被分门别类的派发出去的?
阅读全文
摘要: MFC中的消息循环呢?我们熟悉的switch……case……到哪里去了?
阅读全文
摘要: 能够在运行时发现一个对象的类型,就可以在运行时动态的创建一个对象。在一个类库中,拥有统一的对象创建方式是非常重要的。
阅读全文
摘要: 翻腾了一下 MFC 的源代码,就有了这一系列的东西,全当是故地重游了一番。言归正传吧。文章中所有的代码都提取自MFC 7.0
阅读全文
摘要: 给定任意2个类型U和T,你如何来确定U是否继承于T呢?在编译时发现两个类型的这种关系对于泛型库的优化是极为重要的。在泛型函数中,如果某个类实现了特定的接口,你可以根据这种关系为其利用特定的优化算法。另外,如果我们可以在编译期决定2个类的关系,我们也可以远离dynamic_cast,从而避免运行时的效率开销。
阅读全文
摘要: 我们可以用不同的整数来实例化同一个模板,从而构造不同的类型,进而在编译期执行某些抉择。
阅读全文
摘要: 关于virtual desctructor的详细讨论。同样来自于《Effective C++》3rd Edition。
阅读全文
摘要: 你可能经常需要利用运行时断言技术,它可以方便地测试前提条件。但是,随着Metaprogramming概念的出现,编译时断言技术也已经和runtime assertion一样的普遍了。如何在编译时进行断言呢?其实,方法只有一个,就是让编译器生成一条错误信息,但是编译器生成的错误信息信息性往往有又理想。并且,即使你在一种编译上设计了一种方案,你也很难把它移植到其他的编译器上。我们通过其实现方法的改进和一个Boost中的例子,来看看如何更好的实现这种技术。
阅读全文