句柄类/智能指针(smart point)是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。句柄类实际上是通过复制指向引用计数器类型的指针,来代替复制实际对象;从而使得复制对象变成复制指针,实现虚拟复制(即是用复制对象的地址代替复.....
分类:
其他好文 时间:
2014-10-21 16:51:15
阅读次数:
205
同步服务端
同步服务端也相当简单。它需要两个线程,一个负责接收新的客户端,另外一个负责处理已经存在的客户端。它不能使用单线程;等带一个新的客户端是一个阻塞操作,所以我们需要另外一个线程来处理已经存在的客户端。...
分类:
编程语言 时间:
2014-10-21 10:22:06
阅读次数:
324
为啥推荐使用scoped_lock和RAII idiom变流行是一样的原因:因为你可以确包任何情况下离开执行范围都会解锁mutex注意,这不仅仅是说你可能忘记调用unlock():在你的mutex被锁定之后,还有可能抛出异常,你写的unlock调用语句有可能永远没有机会执行,即使在lock()和un...
分类:
其他好文 时间:
2014-10-21 00:55:24
阅读次数:
379
我们利用静态分配的数组来实现的顺序表的局限还是挺大的,主要在于它的容量是预先定好的,用户不能根据自己的需要来改变。如果为了后续用户能够自己调整顺序表的大小,动态地分配数组空间还是很有必要的。基于动态分配的数组的顺序表绝大部分跟基于静态分配的数组的顺序表是一样的,只需在后者程序上改动一小部分即可。.....
分类:
编程语言 时间:
2014-10-21 00:41:36
阅读次数:
348
因为C++不想直接用boost,有些已经和C++最新标准合并的就打算直接用C++里面的好了。所以需要编译gcc4.9。最新的版本是4.9.1,从ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.bz2下载。本来已经通过yum安装了不少依赖,发现isl和cloog无法通过yum安装,下载并安..
分类:
其他好文 时间:
2014-10-20 10:11:48
阅读次数:
445
客户端和服务端
在这一章节,我们会深入学习使用Boost.Asio建立不平凡的客户端和服务端应用。你可以运行和测试它们,当你理解时,你可以用它们做框架来构造你自己的应用。...
分类:
编程语言 时间:
2014-10-20 10:08:22
阅读次数:
246
auto_ptr是当前C++标准库(STL)中提供的一种智能指针,包含头文件 #include 便可以使用。auto_ptr 能够方便的管理单个堆内存对象,下面贴出SGI中的auto_ptr源码。 1 /* 2 * Copyright (c) 1997-1999 3 * Silicon...
分类:
其他好文 时间:
2014-10-20 09:58:34
阅读次数:
290
首先,我们来搞明白几个概念吧(参考自网站数据结构及百度百科)。 线性表 线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。在实现线性表数据元素的存储...
分类:
编程语言 时间:
2014-10-18 19:41:14
阅读次数:
507
1. RCF: 纯c++的RPC, 不引入IDL, 大量用到boost,比较强大.2. casocklib: protobuf + asio 较完善实现3. eventrpc: protobuf + libevent 较完善实现4. evproto: protobuf + libevent 简单实现...
分类:
编程语言 时间:
2014-10-18 16:51:20
阅读次数:
365
TCP异步服务端
核心功能和同步服务端的功能类似,如下:
class talk_to_client : public boost::enable_shared_from_this
, boost::noncopyable {
typedef talk_to_client s...
分类:
编程语言 时间:
2014-10-17 11:04:34
阅读次数:
302