C ++에서 불변 객체 사용을 연습하고 있습니다. 내 개인적인 목표는 불변의 그래프 시퀀스로 일반 객체 그래프 (힙)를 나타내는 것입니다.
다중 버전 그래프 자체를 만드는 것은 그리 어렵지 않습니다. 문제는 성능입니다. 무차별 버전 관리에는 전체 그래프 사본이 필요하지만 허용되지 않았습니다.
변경되지 않은 노드를 공유하려고했습니다. 그러나이 경우 새로운 문제가 생겼습니다. 참조. 다른 객체에 대한 참조는 전체 그래프에서 업데이트해야합니다. 새 그래프 버전을 파생시킬 때마다 모든 노드를 방문해야합니다. 그리고 이것은 참조로 노드를 변경하므로 (복사) 파생되어야합니다. 무차별 복사보다 성능이 향상되지 않습니다.
내가 상상할 수있는 한, 불변 상태로 객체 그래프의 변이를 표현하는 효과적인 방법은 없습니다. 그래서 이것에 대한 아이디어를 요구하고 있습니다.
불변 상태에서 객체 그래프의 변이를 효율적으로 표현할 수 있습니까?