Boost是由C++标准委员会成员发起、众多C++业界高人参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中 TR1已经被纳入C++0x标准库。不论从风格和内容组织上讲,都可以认为Boost项目是C++标准库的延伸。截止到boost 1.43版本,boost项目拥有大约100个用途广泛的实用库。
* 容器与数据结构
介绍boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等组件。
* 字符串算法和文字处理
介绍boost.lexical_cast, boost.format, boost.string_algo等组件。
* 正则表达式
正则表达式语法(perl正则表达式语法)的讲解,boost.regex库的使用。
* 智能指针
详细介绍shared_ptr、scoped_ptr、weak_ptr等智能指针的使用。
* 函数对象相关
详细介绍boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等组件。
* 序列化
通过实例熟悉boost.serialization库的用法。
* 日期与时间
boost.date_time库的详细介绍。
* 多线程
作为服务器端开发必不可少的内容之一:多线程支持,boost提供了一个跨平台的线程库:boost.thread。
本单元的课程详细介绍boost.thread。
* 网络编程
boost.asio库,通过对各类操作系统原生的socket API以及事件多路分离、异步I/O API的封装,构成了一个性能优秀、便于编程的网络编程框架,使复杂的网络编程任务变得简单、安全、并且高效。
本单元的课程通过一系列的示例来展示:通过asio来构建TCP同步/异步服务器和客户端、UDP同步/异步服务器和客户端应用,从而熟悉asio的接口和编程套路。
Module09 - 项目实战
项目实战可选以下项目之一:
* 项目1:X-Messenger
一个IM(即时通信)服务器,类似于MSN、QQ等IM的服务器。可以基于Boost.asio或ACE实现。
* 项目2:XY-DB
一个小型的关系型数据库系统,包括服务器和客户端实现,建议基于Boost相关组件实现。
* 项目3:Crawler
一个网络爬虫,即搜索引擎的前端,负责收集网络上的数据(网页内容、解析URL)供搜索引擎使用。
* 其他项目,可由学员自行定义。