我有一个类,它拥有一个指向大量分配内存和大量基元类型成员的指针。我对移动构造函数感兴趣,并认为这是使用它的绝好机会。很显然,指针应该移动过来,但是如果对基元来说是个好主意,那么它就是idk。移动构造函数过度冲击
下面是类的一个人为的例子:
class Foo {
private:
long m_bar = 1;
/* 20+ similar members */
};
为了让他们移动,他们将不得不被动态分配。
class Foo {
public:
Foo(Foo && rhs) : m_bar(rhs.m_bar) { rhs.m_bar = nullptr; }
~Foo() { delete m_bar; }
private:
long *m_bar = new long{1};
};
我的问题是,在堆上分配的开销是否会使移动语义引入的性能增加无效?
“原始材料”是可移动的。 –
抱歉太天真了,但你能详细说明一下吗? –
没有什么需要说明的:你不需要做任何事情来移动基本类型的对象。它只是工作。 –