相关分类: Java技术 C/C++ VB delphi
  • 瘦身前后——兼谈C 语言进化[5]

    这里function_invoker是用的type-erase手法,具体可参见我以前写的boost.any源码剖析,或上篇讲auto的,或《C Template Metaprogramming》(内有元编程慎入!)。type-erase手法是像C 这样的弱RTTI支持的语言中少数真正实用的手法,某种程度上设计模式里面的adapter模...

    2008-02-23 05:41:06

  • 瘦身前后——兼谈C 语言进化[2]

    进化——两个例子 先举一个平易近人的例子(Walter Bright——D语言发明者——曾在他的一个presentation中使用这个例子),假如我们想要遍历一个数组,在C里面我们是这么做(或用指针,但是指针有指针自己的问题): int arr[10]; … // initialize arr for(int i = 0;...

    2008-02-23 05:41:04

  • 瘦身前后——兼谈C 语言进化[4]

    boost采用的办法也是C 98唯一的办法,就是为不同参数个数的Signature进行特化: templatetypename R, typename T1 class functionR(T1) { R operator()(T1 a1); }; templatetypename R, typename T1, typename T2 class functionR(T1, T2) { R operator()(T1 a1, T2 a2...

    2008-02-23 05:41:06

  • 瘦身前后——兼谈C 语言进化[1]

    前一阵子写了一篇文章,提到语言进化的职责之一,就是去除语言中的tricks(职责之二是去除非本质复杂性)。 常看我blog的朋友肯定记得我曾写过的boost源码剖析系列。本来这个系列是打算成书的,但随着对C 的认识发生了一些转变,对语言级技术的热衷逐渐消退,再回过头...

    2008-02-23 05:41:03

  • Visual C 设计超强仿QQ自动伸缩窗口[4]

    代码六 void CQQHideWndDlg::DoShow() { if(m_hideMode == HM_NONE) return; CRect tRect; GetWindowRect(tRect); INT height = tRect.Height(); INT width = tRect.Width(); INT steps = 0; switch(m_hideMode) { case HM_TOP: steps = height/HS_STEPS; tRect.top =...

    2008-02-23 05:41:04

  • Visual C 设计超强仿QQ自动伸缩窗口[1]

    一、观察 模仿前最重要的一步就是观察,经过半天对QQ的摆弄和摸索,总结出了以下一些特点: 1、窗口开始粘附时,检测的是鼠标坐标和桌面边界的距离,特别地,粘附在下面的时候,检测的是和任务栏的距离; 2、在向上移动窗口时,窗口边界永远不会超出桌面上面边界; 3、...

    2008-02-23 05:41:02

  • 分部方法:应该纳入到C#中吗?

    C#新增的特性中引起争议的有许多,分部方法(Partial Method)算是个。分部方法通常被定义在一个分部类中,在常规的类文档中也可实现。假如分部方法没有被实现,编译器就不会、对他们进行编译。 分部方法有着严格的限制。他们必须是私有的,不能返回值,不能有输出参数。...

    2008-02-23 05:41:01

  • 为什么使用C [2]

    但是,换个角度想想, 即使在这些领域,程式员在他们的代码中不使用那些高水平的抽象,还是有他们应该使用C 的理由。 为什么呢? 因为您的代码不使用类和模板并不意味着不使用类库。 考虑任何便捷的C 类库工具(即将有校准扩展tr1/tr2)的实用性,我认为在这些情况下,...

    2008-02-23 05:40:59

  • 为什么使用C [3]

    C 里有多少技巧?C 里有多少诀窍?总之,C 有多少复杂之处? 公平地说,大多数窍门和技巧在最近几年都已被发现了(例如,modern C ),已用在了真实需求中,特别是实现高灵活性和属性类库组件的需求(考虑任何在boost中的组件)。他们确实(在一些程度上说)引导了一些...

    2008-02-23 05:41:03

  • 为什么使用C [1]

    问题 为什么使用C ?在您皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。 答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是和之相关的事情。那么,让我再问您一个问题:效率是否是人们选择使用C 的唯一理由,为什么...

    2008-02-23 05:40:59

2