-
瘦身前后——兼谈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
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash