随笔-78  评论-28  文章-0 
  置顶随笔
摘要: 众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的, 笔者水平有限,若有错误和纰漏,还请大家指正。 代码审查的阻力 我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点: 国内的整体环阅读全文
posted @ 2017-04-27 08:14 HarlanC 阅读(1939) 评论(15) 编辑
摘要: 历时两个多月的时间,终于把effective c++又复习了一遍,比较慢,看的是英文版,之前看的时候做过一些笔记,但不够详细,这次笔者是从头到尾的翻译了一遍,加了一些标题,先记录到word里面,然后发布到博客园上。这么做是为了方便查阅,复习C++,同时练习英文,希望这些帖子也能够对大家有所帮助。 有阅读全文
posted @ 2017-04-25 07:46 HarlanC 阅读(449) 评论(0) 编辑
  2017年4月27日
摘要: 众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的, 笔者水平有限,若有错误和纰漏,还请大家指正。 代码审查的阻力 我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点: 国内的整体环阅读全文
posted @ 2017-04-27 08:14 HarlanC 阅读(1939) 评论(15) 编辑
  2017年4月25日
摘要: 历时两个多月的时间,终于把effective c++又复习了一遍,比较慢,看的是英文版,之前看的时候做过一些笔记,但不够详细,这次笔者是从头到尾的翻译了一遍,加了一些标题,先记录到word里面,然后发布到博客园上。这么做是为了方便查阅,复习C++,同时练习英文,希望这些帖子也能够对大家有所帮助。 有阅读全文
posted @ 2017-04-25 07:46 HarlanC 阅读(449) 评论(0) 编辑
摘要: 你正在寻找一个高质量的,开源的,与平台和编译器无关的程序库的集合?看一下Boost吧。想加入一个由雄心勃勃的,充满天赋的正致力于最高水平的程序库设计和实现工作的C++程序员们组成的团体么?看一下Boost吧。想了解C++将来可能会是什么样子的?看一下Boost吧。 Boost是一个C++开发人员组成阅读全文
posted @ 2017-04-25 07:43 HarlanC 阅读(44) 评论(0) 编辑
  2017年4月23日
摘要: 1. C++0x的历史渊源 C++标准——也就是定义语言的文档和程序库——在1998被批准。在2003年,一个小的“修复bug”版本被发布。然而标准委员会仍然在继续他们的工作,一个“2.0版本”的C++标准预计在2009年被发布(虽然所有的工作很有可能在2007年底被完成)。直到现在,发布下一版C+阅读全文
posted @ 2017-04-23 18:21 HarlanC 阅读(25) 评论(0) 编辑
  2017年4月22日
摘要: 许多程序员常常忽略编译器发出的警告。毕竟,如果问题很严重,它才将会变成一个error,不是么?相对来说,这个想法可能在其它语言是无害的,但是在C++中,我敢打赌编译器的实现者对于对接下来会发生什么比你有更好的理解。例如,下面的错误是每个人都时不时会犯的: 1. 你对警告的理解可能是错的 你的想法是用阅读全文
posted @ 2017-04-22 18:55 HarlanC 阅读(22) 评论(0) 编辑
摘要: 1. 调用普通版本的operator new抛出异常会发生什么? Placement new和placement delete不是C++动物园中最常遇到的猛兽,所以你不用担心你对它们不熟悉。当你像下面这样实现一个new表达式的时候,回忆一下Item 16和Item 17: 两个函数会被调用:一个是调阅读全文
posted @ 2017-04-22 12:59 HarlanC 阅读(87) 评论(0) 编辑
  2017年4月21日
摘要: Item 50中解释了在什么情况下你可能想实现自己版本的operator new和operator delete,但是没有解释当你实现的时候需要遵守的约定。遵守这些规则并不是很困难,但是它们其中有一些并不直观,所以知道这些规则是什么很重要。 1. 定义operator new的约定 1.1 约定列举阅读全文
posted @ 2017-04-21 08:01 HarlanC 阅读(110) 评论(0) 编辑
  2017年4月19日
摘要: 1. 自定义new和delete的三个常见原因 我们先回顾一下基本原理。为什么人们一开始就想去替换编译器提供的operator new和operator delete版本?有三个最常见的原因: 为了检测内存使用错误。不能成功delete new出来的内存会造成内存泄漏。在new出来的内存上使用多于一阅读全文
posted @ 2017-04-19 08:00 HarlanC 阅读(45) 评论(0) 编辑
  2017年4月17日
摘要: 1. new-handler介绍 当操作符new不能满足内存分配请求的时候,它就会抛出异常。很久之前,它会返回一个null指针,一些旧的编译器仍然会这么做。你仍然会看到这种旧行为,但是我会把关于它的讨论推迟到本条款结束的时候。 1.1 调用set_new_handler来指定全局new-handle阅读全文
posted @ 2017-04-17 08:01 HarlanC 阅读(103) 评论(0) 编辑
  2017年4月15日
摘要: 1. TMP是什么? 模板元编程(template metaprogramming TMP)是实现基于模板的C++程序的过程,它能够在编译期执行。你可以想一想:一个模板元程序是用C++实现的并且可以在C++编译器内部运行的一个程序,它的输出——从模板中实例化出来的C++源码片段——会像往常一样被编译阅读全文
posted @ 2017-04-15 12:54 HarlanC 阅读(105) 评论(1) 编辑