可以说我有下面的类:习惯的方法
#include <vector>
class Foo
{
public:
Foo(const std::vector<int> & a, const std::vector<int> & b)
: a{ a }, b{ b } {}
private:
std::vector<int> a, b;
};
但现在我要考虑到在构造函数的调用者可能传递的临时给它和我的情况想要将这些临时对象移动到a
和b
。
现在我真的必须再添加3个构造函数,其中1个具有a
作为右值引用,其中1个具有b
作为右值引用,1只具有右值引用参数?
当然这个问题推广到任何值得移动的参数,并且所需构造函数的数量将是参数^ 2 2 ^参数。
这个问题也推广到所有功能。
这样做的习惯做法是什么?还是我完全错过了重要的东西?
我见过的一种解决方案是按值取两个参数,然后移动它们。我已经看到了这个争议,但我没有源:/ – Quentin
哦,是的,你是对的。我将编辑我的答案:p。 – Jupiter
(相关问题)(/ q/2839127) –