摘要: 智能指针能够使 C++ 的开发简单化,主要是它能够像其它限制性语言(如 C# 、 VB )自动管理内存的释放,而且能够做更多的事情。 1、 什么是智能指针 智能指针是一种像指针的 C++ 对象,但它能够在对象不使用的时候自己销毁掉。我们知道在 C++ 中的对象不再使用是很难定义的,因此 C++ 中的资源管理是很复杂的。各种智能指针能够操作不同的情况。当然,智能指针能够在任务结束的时候删除对象,除了在程序之外。许多库都提供了智能指针的操作,但都有自己的优点和缺点。 Boost 库是一个高质量的开源的 C++ 模板库,很多人都考虑将其加入下一个 C++ 标准库的版本中。Boost 提供... 阅读全文
posted @ 2012-09-18 22:32 既有缘 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 首先保证我们拿到的是最新代码,运行Linux代码 svnupIndex/然后找出要撤销的确切版本:Linux代码 svnlog--limit10Index/tpl/css/global.css根据log怀疑是16976版本改坏的,比较一下:Linux代码 svndiff-r16975:16976Index/tpl/css/global.css 发现16976有错误撤销16976版本的改动:Linux代码 svnmerge-r16976:16975Index/tpl/css/global.css为了保险起见,再次确认合并的结果Linux代码 svndiffIndex/tpl/css/global 阅读全文
posted @ 2012-09-18 14:55 既有缘 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 有的时候仅仅依靠锁住共享资源来使用它是不够的。有时候共享资源只有某些状态的时候才能够使用。比方说,某个线程如果要从堆栈中读取数据,那么如果栈中没有数据就必须等待数据被压栈。这种情况下的同步使用互斥锁是不够的。另一种同步的方式--条件变量,就可以使用在这种情况下。条件变量的使用总是和互斥锁及共享资源联系在一起的。线程首先锁住互斥锁,然后检验共享资源的状态是否处于可使用的状态。如果不是,那么线程就要等待条件变量。要指向这样的操作就必须在等待的时候将互斥锁解锁,以便其他线程可以访问共享资源并改变其状态。它还得保证从等到得线程返回时互斥体是被上锁得。当另一个线程改变了共享资源的状态时,它就要通知正在等 阅读全文
posted @ 2012-09-18 14:30 既有缘 阅读(194) 评论(0) 推荐(0) 编辑