나는 할당 된 메모리와 많은 원시 타입 멤버들에 대한 포인터를 가지고있는 클래스를 가지고있다. 나는 이동 생성자에 대해 머리를 써서 이것이 하나를 사용할 수있는 완벽한 기회라고 생각한다. 분명히 포인터를 통해 이동해야하지만 idk 좋은 생각이있는 경우에는 idk.move constructor overkill
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};
};
내 질문은 힙에 할당의 오버 헤드가 이동 의미에 의해 도입 된 성능 향상을 무효화 것입니까?
"프리미티브"는 움직일 수 있습니다. –
미안하지만 미안하지만 미안합니다. –
정교하게 다루는 것이 많지 않습니다. 기본 유형의 객체를 이동하는 데는 아무 것도 할 필요가 없습니다. 그냥 작동합니다. –