현재 C++ 표준 데이터 구조에서 사용할 수 있어야하는 할당자를 작성하고 있습니다. 즉, Allocator 개념을 구현합니다.C++ 할당자가 소멸/복사/이동 될 때 할당 된 메모리를 어떻게 처리해야합니까?
할당자는 아주 간단합니다 : x
개체의 청크를 할당하고 현재 청크가 가득 차 있지 않은 경우 항상 다음 개체를 나눠줍니다. 그렇지 않으면 새 청크가 할당됩니다.
지금 내 질문은 : 할당자가 파괴/복사/이동했을 때 이러한 청크를 처리하는 방법은 무엇입니까? 할당 자 개념은 이러한 경우에 일어날 일에 대해 아무 것도 말하지 않는다.
- 파괴가 : 할당자가 모든 덩어리를 파괴 할 수있다 여기에 내 생각이다. 그러나 할당 된 객체를 사용하는 객체가 할당 자보다 오래 남아있을 수는 없습니다.
- 복사 : 가장 간단한 아이디어는 청크를 복사하는 것입니다. 그러나 두 번째 생각에서 이것은 의미가 없습니다. 아무도 복사 된 덩어리의 개체 주소를 알지 못하므로 아무런 이점도없이 복사됩니다. 복사 된 할당자는 어쩌면 빈 청크 목록으로 시작해야합니다.
- 이동 : 청크를 새 할당 자로 이동해야합니다. 이전 버전에는 빈 청크 목록이 있어야합니다.
내 가정이 정확합니까? 그렇지 않다면, 왜 그리고 어디서 정의되어 있습니까?