C++表达式模板的教程和介绍

grr*_*sel 10 c++ arrays templates metaprogramming expression-templates

有什么好的介绍来创建C++表达式模板系统?我想表达对用户定义类型的算法,同时避免临时值(可能很大),并学习如何直接执行此操作而不是应用现有库.

我找到了Todd Veldhuizen的原始论文Josuttis C++模板书中的一个例子,以及Kreft&Langer的一篇文章.在现代C++课程的第6讲中提到了Josuttis.POOMA库背景很好地介绍了表达模板.

我正在寻找简单明了的论述.

gre*_*olf 7

我发现Expression Templates Demystified得到了相当好的解释.首先介绍如何在没有模板的情况下实现数学表达式,并展示基本构建块和概念.

本文的第二部分展示了如何重构初始实现以使用模板来改进性能和减少代码.

IMO,这篇文章是"C++模板:完整指南"中表达模板章节的一个很好的替代品.


Jam*_*lis 5

您应该获得C++模板的副本:完整指南.

您链接的代码示例没有附带的文本,这非常有用(表达式模板的章节长度为22页).没有文本,你所拥有的只是代码,没有任何评论或解释它的作用以及它是如何以及为什么这样做的.

  • Vandevoorde 和 Josuttis 拥有唯一真正完整的描述。这个话题永远不会“简单”,因为这是一个既复杂又困难的话题,但他们做得最好。 (2认同)