Я использую двоичную сериализацию boost, и до сих пор она работала хорошо. У меня есть std::list
указателей для сериализации для вывода (oarchive), но сериализация завершается ошибкой внутри функции serialize () объекта с диалогом 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. Когда я нажимаю « retry » на « Ошибка отладки! », окно отладчика показывает стрелку на строке кода рядом с сериализацией archive << myList;
строки - я имею в виду, кажется, как ошибка произошла в каком-то деструкторе или чем-то еще.
Когда я делаю изменения внутри объектов, функция serialize () - они будут применены только тогда, когда я пересобираю весь проект (очищаю перед компиляцией) - но если я просто скомпилирую его (где IDE показывает, что все источники, которые включают измененный заголовок, перекомпилированы) - никаких изменений произойдет во время выполнения с последней версии (я пробовал с printf ()) - это странно.
Могу ли я иногда устанавливать критические определения или что-то в этом роде?