Я использую бинарную сериализацию boost, и она работала до сих пор. У меня есть std::list
указателей на сериализации для вывода (oarchive), но сериализации не удается внутри функции объекта сериализации() с диалогом MSVC в:Ускорение утверждения сериализации
R6010 -abort() has been called
и такие строки печатается в консольном окне:
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
что это значит?
Проект довольно большой, источники распределены, поэтому я не могу опубликовать его здесь, но я попытался смоделировать эту ошибку в рамках простого проекта - там он отлично работает, что странно.
P.S. Я использую boost 1.44 с MSVC2010EE в Windows XP. Когда я нажимаю «повторить» на «Debug Error!» Окно отладчика показывает стрелка на линии кода следующий для сериализации archive << myList;
линии - я имею в виду, похоже произошла ошибка в какой-то деструктор или что-то. Когда я вношу изменения внутри функции serialize() объектов - они будут применяться только тогда, когда я перестрою весь проект (чистый перед компиляцией), но если я просто скомпилирую его (где IDE показывает, что все источники, включая измененный заголовок, перекомпилируются) - no изменения произойдут во время выполнения с последней версии (я попытался с printf()) - это странно. Мог ли я иногда устанавливать некоторые критические определения или что-то еще?
сложно помочь без кода. Можете ли вы сварить это до небольшого воспроизводимого примера и включить его здесь? –