C++模板元编程实战:一个深度学习框架的初步实现.pdfVIP

C++模板元编程实战:一个深度学习框架的初步实现.pdf

  1. 1、本文档共246页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

C++模板元编程实战:一个深度学习框架的初步实现

1.第一部分元编程基础技术

2.第1章禀无技巧

3.第2章异类词典与policy模板

4.第3章深度学习概述

5.第4章类型体系与基本据类型

6.第5章运算与表达式模板

7.第6章基本层

8.第7章复合层与循环层

9.第8章求值写优化

10.后记——方家休见笑,吾道本艰难

第一部分元编程基础技术

第1章基本技巧

本章将讨论元编程与编译期计算所涉及的基本方法。我们首先介绍元函,通过简单的示

例介绍编译期与运行期所使用“函”的异同。其次,在此基础上进一步讨论基本的顺序、

分支、循环代码的书写方式。最后介绍一种经典的技巧——奇特的递归模板式。

上述内容可以视为基本的元编程技术。而本书后续章节也可以视为这些技术的应用。掌握

好本章所讨论的技术,是熟练使用C++模板元编程与编译期计算的前提。

1.1元函与typjtraits

1.1.1元函介绍

C++元编程是一种典型的函式编程,函在整个编程体系中处于核心的地位。这里的函

与一般c+十程序中定义与使用的函有所区别,更接近学意义上的函——是无副作

用的映射或变换:在输入相同的前提下,多次调用同一个函,得到的结果也是相同的。

如果函存在副作用,那么通常是由于存在某些维护了系统状态的变量而导致的。每次函

调用时,即使输入相同,但系统状态的差异会导致函输出结果不同:这样的函被称

为具有副作用的函。元函会在编译期被调用与执行。在编译阶段,编译器只能构造常

量作为其中间结果,无法构造并维护可以记录系统状态并随之改变的量,因此编译期可以

使用的函(即元函)只能是无副作用的函。

以下代码定义了一个函,满足无副作用的限制,可以作为元函使用6

1constexprintfun(inta){returna+1;}

其中的constexpr为C++ll中的关键字,表明这个函可以在编译期被调用,是一个元函

。如果去掉了这个关键字,那么函fun将只能用于运行期,虽然它具有无副作用的性

质,但也无法在编译期被调用。

作为一个反例,考虑如下的程序:

1staticintcall_count=3;

2constexprintfun2(inta)

3(

4returna+(call_count++);

5}

这个程序片断无法通过编译——它是错误的。原因是函内部的逻辑丧失了“无副作用”的

性质——相同输入会产生不同的输出;而关键字constexpr则试图保持函的“无副作用”特

性,这就导致了冲突。将其进行编译会产生相应的编译错误。如果将函数中声明的

constexpr关键字去掉,那么程是可以通过编译的,但fun2无法在编译期被调用,因为它

不再是一个元函数了。

希望上面的例子能让读者对元函数有一个基本的印象。在C++中,我们使用关键字

cnstexpr来表示数值元函数,这是C+十中涉及的一种元函数,但远非全部。事实上,

C++中用得更多的是类型元函数——即以类型作为输入和(或)输出的元函数。

LL2类型元函数

从数

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档