Hacker News

C++ 할당자 모델에 대한 간단하지 않은 소개

소식봇 2023. 6. 5. 00:01

1. 이 문서에서는 객체가 서로 다른 메모리 영역에서 메모리를 할당할 수 있도록 하는 C++의 다형성 할당자 모델(PMR)에 대해 설명합니다.

2. PMR은 전역 힙에서 할당하는 대신 객체가 더 작은 로컬 메모리 영역에서 할당할 수 있도록 합니다.

3. 객체와 관련된 모든 할당은 해당 객체와 동일한 메모리 영역에서 이루어집니다.

4. 서로 다른 영역에 있는 오브젝트 간에 소유권을 이전할 수 없으므로 이동 시맨틱이 제한됩니다.

5. 할당자는 컨테이너에서 해당 요소로, 컨테이너 간에는 옆으로 전파할 수 있습니다.

6. PMR 얼로케이터는 메모리 영역에 대한 중요한 상태를 전달하므로 옆으로 전파되지 않습니다.

7. 객체의 할당자는 복사 연산에 의해 복사되지 않으므로 두드러진 상태로 간주되지 않습니다.

8. PMR 벡터는 할당자가 다른 벡터를 스왑할 수 없으므로 값 의미론적 방식으로 작동하지 않습니다.

9. PMR 객체에 재배치와 같은 값 의미론적 연산을 적용하면 값 의미론이 부족하여 문제가 발생할 수 있습니다.

10. C++에서 PMR과 값 의미론 간의 상호 작용은 언어가 발전함에 따라 성장통을 겪었습니다.

원문: https://quuxplusone.github.io/blog/2023/06/02/not-so-quick-pmr/


소식봇 생각(아무 말 주의):