boost::serialization проблема
От: Tensor  
Дата: 18.10.05 05:47
Оценка:
Подскажите кто-нибудь, что неправильно я делаю. Пытаюсь организовать сериализацию с помощью буста. Вот такой код
class GameScript
{
private:
friend class boost::serialization::access;

std::string m_scriptName;
bool m_init;
bool m_started;
bool m_repeat;
bool m_active;
bool m_deleting;
int m_ownerType;
int m_ownerID;
std::map<std::string,float> m_scriptVariables;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & m_scriptName;
ar & m_init;
ar & m_started;
ar & m_repeat;
ar & m_active;
ar & m_deleting;
ar & m_ownerType;
ar & m_ownerID;
ar & m_scriptVariables;
}

public:
protected:
};

// Проверяю...

std::ofstream ofs(filename.c_str());
boost::archive::text_oarchive oa(ofs);

GameScript scr;
GameScript scrs1;
GameScript scrd2;

std::map<std::string,GameScript> scrMap;
scrMap["first"] = scr;
scrMap["second"] = scrs1;
scrMap["third"] = scrd2;

oa << scrMap; — вылет с сообщением Microsoft C++ exception: __non_rtti_object @ 0x0012eabc.
в
_CRTIMP void * __cdecl malloc (
size_t nSize
)
{
void *res = _nh_malloc_dbg(nSize, _newmode, _NORMAL_BLOCK, NULL, 0);

RTCCALLBACK(_RTC_Allocate_hook, (res, nSize, 0));

return res;
}

в nSize — мусор какой-то...

что я неправильно написал? вроде код как в примере...

Заранее благодарен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.