C++ 模板元编程,c++模板元
我给大家带来一个C编程相关的电子书资源,里面介绍了C,模板元素,编程的内容。本书由机械工业出版社出版,格式为PDF。资源大小为24.03 MB,由David Rongyao编写。目前豆瓣、亚马逊、当当、JD.COM等电子书的综合评分为9.2分。
内容介绍
这本书清楚地揭示了如何使用现代C *的力量,并向普通程序员提供了实用的工具和技术。
元编程是一种生成或操作代码的程序。自从泛型编程被引入C语言以来,程序员们已经找到了无数个在编译程序时操纵程序的“窍门模板”。这些技巧有效地消除了程序和元编程之间的障碍。虽然C专家对这种能力的兴奋已经蔓延到了整个C社区,但是对于大多数程序员来说,它们的实际应用仍然遥不可及。这本书解释了什么是元编程以及如何有效地使用它。
它为您在自己的工作中有效地使用模板元编程提供了必要的基础。
这本书的目标读者是任何熟悉标准模板库(STL)习惯用法的程序员。c高级用户将获得对现有工作的新见解和元编程的新知识。那些学过一些高级模板技术的中级程序员,就会明白这些招数哪里适合大屏。并将获得有序使用它们所需的概念基础。对于那些已经嗅到了元编程的味道,但对它仍然很神秘的程序员来说,他们最终会清楚地了解元编程是如何、何时以及为什么工作的。无论如何,所有读者都将获得一个拥有前所未有力量的新工具:Boost MetaDroaramming Library。
内容简介
055-79000是一个关于C模板元编程的作品。055-79000主要介绍特征和类型操作,对元函数的深入探索,整数包装器和操作,序列和迭代器,算法,视图和迭代器适配器,诊断,跨越编译时和运行时边界,领域特定的嵌入式语言,DSEL设计练习,附录还介绍了预处理元编程,typename和模板关键字的概述。055-79000通过理论联系实际,深入讲解了高级C编程技术。
055-79000适合中高级C程序员等参考。
附带的光盘包含了所有的Boost C库:Boost Metaprog夯实库及其参考文件,以及所有附带的代码示例和大量的补充资料。
目录
译者前言
前言
序
表示感谢/感激
第1章概述
1.1开始行走
1.2元程序的概念
1.3宿主语言中的元编程
1.4中的元编程。
1.4.1数值计算
1.4.2类型计算
1.5为什么是元编程?
1.5.1备选方案1:运行时计算
1.5.2备选方案2:用户分析
1.5.3为什么用c编程?
1.6什么时候进行元编程?
1.7为什么需要元编程库?
第2章特征和类型操作
2.1类型关联
2.1.1采用直接法。
2.1.2采取迂回方式。
2.1.3寻找捷径。
2.2元函数
2.3数值函数
23.4编译时做出选择
2.4.1对iter_swap的进一步讨论
美中不足的是
2.4.3另一个美中不足之处
2.4.4“美中不足”的外部覆盖
2.5增强类型性状库概述
一般知识
主要类型分类
2.5.3二级类型分类(二级类型分类)
类型属性
类型之间的关系
类型转换
2.6无参数函数
2.7元函数的定义
2.8历史
2.9细节
专业化
实例化
多态性
2.10实践
第三章深入探讨了元功能。
3.1量纲分析
尺寸的表示
3.1.2物理量表示
3.1.3实现加减法
3.1.4实现乘法
3.1.5分部的实施
3.2高阶元函数
3.3处理占位符
元函数
3.3.2应用元功能
3.4 Lambda的其他能力
部分功能的应用
3.4.2元功能构成
3.5的详细信息
占位符
占位符表达式的定义
3.5.3 Lambda和非元函数模板
3.5.4“懒惰”的重要性
3.6细节
3.7实践
第4章整数外部包装和操作
4.1布尔外部覆盖和操作
类型选择
4.1.2慢速类型的选择
逻辑运算符
4.2整数包装和操作
整数运算符
4.2.2 _c整数速记法
4.3实践
第5章序列和迭代器
5.1概念
5.2序列和算法
5.3迭代器
5.4迭代器概念
前向迭代器
双向迭代器
随机访问迭代器
5.5序列概念
序列遍历概念
可扩展性
相关序列
5.5.4可扩展关联序列
5.6序列相等
5.7固有顺序操作
5.8序列类
5.8.1列表
向量
德克
范围_c
5.8.5地图
5.8.6设置
迭代器_范围
5.9整数序列包装器
5.10序列推导
5.11编写自己的序列
5.11.1构建微小序列
迭代器的表示
5.11.3对微小的实施at。
5.11.4完成tiny_iterator的实现
开始和结束
添加可扩展性。
详细信息
5.13实践
第六章算法
6.1算法、习惯用法、重用和抽象
6.2 MPL算法
6.3插入器
6.4基本序列算法
6.5查询算法
6.6序列构建算法
6.7自己写算法
6.8细节
6.9实践
第7章视图和迭代适配器
7.1一些例子
7.1.1比较从序列元素计算的值。
7.1.2组合多个序列
避免不必要的计算。
选择性元素处理
7.2视图概念
7.3迭代器适配器
7.4写出你自己的观点
7.5历史
7.6实践
第八章诊断
8.1调试错误
实例化回溯
8.1.2错误消息的异常格式
8.2使用工具进行诊断分析
8.2.1听取他人的意见
使用导航助手
8.2.3清理现场
8.3有目的的诊断信息生成
静态断言
8.3.2 MPL静态断言
8.3.3打印
8.4历史
8.5细节
8.6实践
第9章跨越编译时和运行时界限
9.1 forl_each
9.1.1打印类型
9.1.2类型访问
9.2实施选择
if语句
9.2.2类模板的专门化
标签分配
9.3对象生成器
9.4结构选择
第9.5类化合物
9.6(成员)函数指针作为模板参数
9.7类型擦除
一个例子
概括
9.7.3“手动”式擦除
自动类型擦除
9.7.5保留接口。
9.8奇怪的递归模板模式
生成函数
9.8.2管理过载解决方案
9.9显式管理重载集
9.10技能大小
9.11摘要
9.12实践
第10章特定领域的嵌入式语言
0.1小语种
10.2路漫漫其修远兮修远Xi
制作工具语言
Bacos-Noel模型
YACC
DSL摘要
10.3 DSL
0.4c作为主语言
10.5闪电战和表情模板
10.5.1问题
表达式模板
更多闪电战魔法
0.6 DSEL将军
命名参数
构建匿名函数
10.7 BoostSpirit库
关闭
10.7.2分则
10.8摘要
10.9实践
第十一章DSEL设计练习
1.1有限状态机
领域抽象
符号
1.2框架设计目标
1.3框架接口基础
1.4选择DSL
换算表
1.4.2组装成整体。
11.5实施
11.6分析
1.7语言方向
11.8实践
附录A预处理元编程介绍
附录B键入名称和模板关键字
附录c编译时性能
附录D MPL可移植性总结
参考
学习笔记
如何使用Nodejs的c模块正确链接到OpenSSL
之所以会这样,是因为不知道什么原因,Nodejs的c模块是最近写的,然后在js端调用。通信天然依赖于ssl,所以需要链接Openssl库。我们最初的预期是,用户需要安装Openssl的运行时,然后我们的c模块动态链接到Openssl的so库来运行。一开始一切看起来都很好,直到我们发现这个openssl函数不行了:PKCS7_sign() PKCS7_sign()我们发现如果我们的C模块和Openssl库动态链接的话,编译是没有问题的。但运行时会出现错误:找不到PKCS7_sign符号。如果我们的C模块是用Openssl库静态链接的话,编译不会有问题,但是运行的时候,调用这个函数的地方是没有效果的,这个函数的返回值是0。根据文档,有一个错误.
Linux下用python和C语言用dlib实现人脸检测
对比python C dlib的人脸检测结果,供大家参考,具体内容如下:由于项目需求发现C在Linux下使用dlib进行人脸检测,python使用dlib进行人脸检测,得到的结果差异较大,所以写了一个测试用例,发现有但不限于:1。不同版本的DLIB(影响不大,几个像素的差异)2。2.dlib人脸检测中detector()的第二个参数的设置测试结果如下:python pdlib . py:#-*-编码:UTF-8-*-import sys import CV2 import dlibfrom skim age import io detector=dlib . get _ frontend _ Face _ detector()win=dlib . image _ window()for f in sys . argv[1:]:img=io . im read(f)dets=detector(img,1)# enumerate(dets)中I,d用检测器进行人脸检测:x=d
安装mysqlclient时需要Microsoft Visual C 14.0的错误。
安装mysqlclient时出现以下错误:解决方案:1。转到提示网站:https://visualstudio.microsoft.com/download/并下载相应的VC版本,然后继续安装mysqlclient。但是我还没有找到对应的文档,就不多赘述了。下面是第二种方法。2.1去https://www.lfd.uci.edu/~gohlke/pythonlibs/找mysqlclient编译包下载相应版本:注意:前面代表python版本,后面win代表Python数字。2.2输入存放文件的文件夹。例如,我将下载的文件放在c:\envs\django1-env中,并安装它们:2.3。提示安装成功。解题总结。以上是边肖为您介绍的解决方案。安装mysqlclient时需要Microsoft Visual C 14.0错误。希望对你有帮助。如果你有任何问题,请离开我.
Go,语言对比,c,参考与借鉴
本文主要介绍Go是否引用传递参数(对比C)。有需要的朋友可以参考C中的以下三种参数传递方法:最常见的参数传递方式,函数参数是实际参数的副本,在函数中改变参数不会影响函数外的参数。一般当函数内部修改参数,不想影响调用者时,会采用值传递。传递一个指针形参是一个指向实参地址的指针。顾名思义,在函数中操作参数所指向的内容时,参数本身会被修改。c中传递的是引用,引用是变量的别名,其实是同一个东西,存在于内存的同一个地址。换句话说,不管引用在哪里操作,被引用的变量都是相当直接地操作。我们来看演示:#include iostream//值传递void func1 (int a) {.
以上介绍的C编程电子书的相关内容就这些了。希望我们整理的资源可以帮助到大家,感谢大家对码农家园的支持。
发动
收起-
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。