首页 > 解决方案 > 每个接受左值引用的函数都应该重载以接受右值引用吗?

问题描述

假设我有这样的功能:

auto funct(T const& lhs) { ... };

这个函数通常可以通过窃取资源来优化,所以我们可以如下重载它:

auto funct(T&& lhs) { ... };

知道临时值被隐式转换为右值引用,这实际上会在窃取相关时提高性能。

我应该像这样重载每个函数吗?这似乎导致了很多代码重复......如果我是对的,这种重复可以避免吗?

标签: c++11optimizationrefactoringrvalue-referencecode-duplication

解决方案


推荐阅读