【112】深入实践Boost Boost程序库开发的94个秘笈 PDF 电子书

[复制链接]

该用户从未签到

759

主题

763

帖子

4660

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4660
发表于 2017-12-28 13:13:11 | 显示全部楼层 |阅读模式

想要查看内容赶紧注册登陆吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
TIM截图20171228130055.png
内容简介
  Boost库是由专业人员开发,在多个平台和处理器架构上测试,并适用于广泛任务的可靠解决方案。本书将带你踏上简化应用程序开发过程的旅程,引导你更快地编写完美的应用程序。
  本书详细阐述多线程、网络编程、元编程和泛型编程,并探讨如何只编写一次程序,就能在Linux、Windows、Mac OS和Android操作系统中使用。书中汇集Boost库开发者创建的许多清晰、实用的秘笈,循序渐进地引导读者了解并充分利用Boost和C++的真正优势,以及一些现成可用的解决方案,快速开发高品质、可移植的应用程序。
  本书主要内容:
  涵盖日常使用的新数据类型、图形处理的基础知识,以及一些编程技巧。
  讨论如何使用智能指针管理资源,根除内存泄漏问题,以及如何使用Boost库执行与多线程和常见的字符串相关的任务。
  讲解如何将处理、计算和相互作用拆分为仿函数(任务)并且独立地完成这些任务。
  探讨用于检测编译器、平台和Boost功能的各种辅助宏。

作者简介
  Antony Polukhin?资深技术专家,拥有多年Boost软件开发经验。他在应用程序开发集成、程序包实现、面向图形的数据库查询和面向对象的软件开发等领域拥有独到的见解,积累颇丰,曾为Asterisc的商业替代软件开发业务逻辑。他开发或维护了许多Boost库,如Any、LexicalCast、TypeTraits、Variant等。目前他开发了一个面向图形的数据库查询引擎,并继续为开源做贡献。


目  录
译者序
前言
第1章 开始编写应用程序
秘笈1 获取配置选项
秘笈2 在容器/变量中存储任意值
秘笈3 在变量/容器中存储多个选择类型
秘笈4 使用更安全的方式处理存储多个选择类型的容器
秘笈5 返回一个值或在没有值的地方返回一个标志
秘笈6 从函数返回数组
秘笈7 将多个值结合成一个值
秘笈8 重新排列函数的参数
秘笈9 绑定一个值作为函数参数
秘笈10 使用C++11移动仿真
秘笈11 制作一个不可复制的类

前  言
  几年前,我的一位朋友一直在寻找关于Boost库的书。我问他:“你为什么不阅读官方文档呢?”他回答道:“我对它所知甚少,也不知道从哪里开始。Boost太庞大了,我没有时间来阅读全部有关它的官方文档。”嗯,这是一个很好的线索,但这样的一本书,将只会引起初学者的兴趣,专业人员会发现它没有什么意义,除非添加一些C++11的东西,并对现有的Boost库与C++新标准加以比较。
  我也可以添加在Boost邮件列表中出现,但很难从文档中找到或未在文档中涵盖的常见问题的答案,辅之以性能说明,我们会得到几乎每个人都将感兴趣的一本书。
  本书将向你展示一些清晰、实用的攻略,这将有助于你充分利用一些现成可用的解决方案。
  本书从Boost库的基础开始讲解(现在它们大部分都是C++11的组成部分),并杜绝了任何内存泄漏的机会。管理资源将成为小菜一碟。我们将知道什么样的工作可以在编译时完成以及Boost容器可以做什么。你认为多线程编程是一种负担吗?用Boost就不会。你认为编写可移植的快速服务器是不可能的吗?你会感到惊讶!编译器和操作系统相差太大吗?用Boost不会。从处理图像到图形、目录、定时器、文件和字符串——人人都会发现一个有趣的话题。
  你将学到开发高品质、快速、可移植应用程序所需的一切知识。只要编写一次程序,你就可以在Linux、Windows、MacOS和Android操作系统中使用。


第1章
  开始编写应用程序
  Boost是一个C++库的集合。被接纳到Boost前,每个库都被许多专业的程序员检查过。他们使用许多编译器和C++标准库实现在多个平台上测试这些库。而使用Boost,可以确保你所使用的是一种最轻便、快速、可靠的解决方案,它在一个适用于商业和开放源码项目的许可下发布。
  C++11包含Boost的许多部分,在C++的未来标准中,甚至会包括更多的部分。在本书的每个秘笈中,你都会发现专门针对C++11的注释。
  没有长篇的引言,让我们开始吧!
  在这一章中,我们将看到一些日常使用的秘笈。将学到如何从不同来源获得配置选项和利用Boost库作者介绍的一些数据类型能做出什么“菜”来。
  秘笈1 获取配置选项
  观察一些控制台程序,比如Linux中的cp。它们都有一个特别的帮助,它们的输入参数不依赖于任何位置,并有一个人类可读懂的语法,例如:
  你可以在10分钟内让你的程序实现相同的功能。所需要的只是Boost.ProgramOptions库。
  准备
  针对这个秘笈,只需要有C++的基础知识。记住,这个库不止包括一个头文件,所以你的程序需要链接libboost_program_options库。
  做法
  让我们先从一个简单的程序开始,它接受苹果和橙子的数量作为输入,并且计算出水果的总数量。我们想实现下面的结果:
  $ our_program ––apples=10 ––oranges=20
  Fruits count: 30
  请执行下列步骤:
  1. 首先,需要包含program_options头文件并为boost::program_options命名空间起一个别名(输入它实在是太长了!)。还需要包含头文件:
  2. 现在,已经准备好来描述我们的选项:
  3. 随后我们将看到第三个参数的一些用法,此后我们会处理命令行解析,并输出结果:
  这很简单,不是吗?
  4. 让我们添加 --help 参数用于选项的描述:
  5. 现在在 opt::notify(vm);后面添加以下几行,这会使你的程序得到一个全功能的帮助:
  现在,如果我们用 --help参数调用这个程序,我们会得到下面的输出:
  正如你所见,我们未提供选项值的类型,因为我们不希望传递给它任何值。
  6. 一旦完成了所有的基本功能,添加一些选项的简称,设置默认值为“apples”,添加一些字符串输入,并从配置文件中获得缺少的选项:


下载地址(回复可见):
游客,如果您要查看本帖隐藏内容请回复


回复

使用道具 举报

该用户从未签到

0

主题

47

帖子

47

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
47
发表于 2019-8-30 02:53:16 | 显示全部楼层
入实践Boost Boost程序库开发的94个秘笈 PDF 电子书 [修改]
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

236

帖子

248

积分

邀请会员

积分
248
发表于 2022-8-5 09:10:17 | 显示全部楼层
深入实践Boost Boost程序库开发的94个秘笈
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

175

帖子

175

积分

邀请会员

积分
175
发表于 2023-1-23 02:36:53 | 显示全部楼层
深入实践Boost Boost程序库开发的94个秘笈 PDF 电子书
回复 支持 反对

使用道具 举报

快速回复高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表