Подскажите кто-нибудь, что неправильно я делаю. Пытаюсь организовать сериализацию с помощью буста. Вот такой код
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 — мусор какой-то...
что я неправильно написал? вроде код как в примере...
Заранее благодарен