나는 이전에 어떻게 만드는 "버전"나는 내가 원하는 어떤 일을 할 수 있었다 boost::serialization::access
boost :: serialization :: access 동적으로 버전을 런타임에/프로그램 적으로 변경할 수 있습니까?
사용 serializaion에 대한 this question을 요청하지만, 상당한 한계가있을 것으로 보인다.
특히, 런타임에 버전을 변경하고 코드에서 동적으로 직렬화 버전을 변경할 수 있기를 바랍니다. 그러나
, 매크로BOOST_CLASS_VERSION(ClassName, ver)
행동의 유형을 허용하지 않는 것 같다.
나는 각각 다른 클래스를 만들고 필요할 때 사용할 수 있다고 생각하지만, 많은 코드 변경이 필요하기 때문에 그러지 않는 것이 좋습니다.
동일한 실행 중에 다른 버전을 사용하도록 프로그래밍 방식으로 클래스를 변경하는 방법이 있습니까?
우리가해야 할 일의 조금 더 설명 :
내가 작업하려고 유스 케이스는 (은 업그레이드 된 첫 번째 실행/경우), 다음으로 쓰기 이전 버전의 프로그램 읽기입니다 새 버전을 읽은 다음 해당 새 버전을 읽을 수도 있습니다.
[예제] (http://www.boost.org/doc/libs/1_49_0/libs/serialization/doc/tutorial.html#versioning) (참조 된 질문에서 제공)를 보았습니까? 새 필드를로드하기 전에 버전을 확인하면서 bus_route 클래스의 예제를 제공합니다. [데모] (http://www.boost.org/doc/libs/1_49_0/libs/serialization/example/demo.cpp)는 동일한 것을 보여줍니다 – Hasturkun
@Hasturkun 예,하지만 다른 버전은 허용하지 않습니다. 같은 실행. – Tim