我正在阅读一些文章,其中很多都提到了表达式模板可以避免使用临时对象。但他们都没有提到这是如何完成的。据我所知,由于设计架构操作是使用临时对象完成的。例如,如果 a、b 和 c 是两个矩阵,如果我们这样做,a = b+c
那么结果将b+c
保存在一个临时对象中temp = b+c
,然后将结果复制回一个 like a = temp
。
但是如果我们使用表达式模板,那么这个加法(+)操作返回 b 和 c 的引用,然后主要计算发生在赋值运算符(=)被评估时。这是模板表达式的简单通用概念。但我不明白它是如何摆脱临时对象的。如果有人能给出如何避免这种临时性的一般想法,那就太好了。