我有一個類,它擁有一個指向大量分配內存和大量基元類型成員的指針。我對移動構造函數感興趣,並認爲這是使用它的絕好機會。很顯然,指針應該移動過來,但是如果對基元來說是個好主意,那麼它就是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};
};
我的問題是,在堆上分配的開銷是否會使移動語義引入的性能增加無效?
「原始材料」是可移動的。 –
抱歉太天真了,但你能詳細說明一下嗎? –
沒有什麼需要說明的:你不需要做任何事情來移動基本類型的對象。它只是工作。 –