부스트의 이진 직렬화를 사용하고 지금까지 제대로 작동했습니다. I 출력 (oarchive)에 대한 직렬화 포인터의 std::list
을 가지고 있지만 직렬화 MSVC의 대화와 객체의 직렬화() 함수 내에서 실패부스트 직렬화 어설 션이 실패했습니다.
Assertion failed: 0 == static_cast<int>(t) || 1 == static_cast<int>(t), file c:\program files\boost\boost_1_44\boost\archive\basic_binary_oprimitive.hpp, line 91
R6010 -abort() has been called
와 같은 문자열
무슨 뜻입니까?
프로젝트가 꽤 크고 소스가 배포되어 있으므로 여기에 코드를 게시 할 수 없지만 간단한 프로젝트 내에서이 오류를 시뮬레이트하려고했습니다. 이상한 점이 있습니다.
P. Windows XP에서 부스트 1.44과 MSVC2010EE를 사용합니다. 내가 클릭하면 윈도우 디버거가 직렬화 archive << myList;
라인의 코드 라인 다음에 화살표를 보여줍니다! "디버그 오류"의 "는을 다시 시도"- 나는 오류가 일부 소멸 또는 무언가에 발생한 것 같다 의미한다. 개체 serialize() 함수를 변경할 때 - 전체 프로젝트를 다시 컴파일 할 때 적용됩니다 (컴파일 전에 정리) -하지만 방금 컴파일 한 경우 (IDE에서 변경된 헤더가 포함 된 모든 소스가 다시 컴파일된다는 것을 보여줍니다) - 아니요 변경 사항은 런타임에서 (printf()로 시도한) 마지막 버전 이후에 발생합니다 - 이상합니다. 간혹 몇 가지 중요한 정의를 설정할 수 있습니까?
코드 없이는 도움이되지 않습니다. 이것을 재현 할 수있는 작은 예제로 끓여 여기에 포함시킬 수 있습니까? –