
Hi, How to validate datatype before it gets deserialized? e.g. struct Abc { std::map<string,string> tmpMap; int a; float d; std::list<string> stringList; void serialize(boost::archive::polymorphic_oarchive & ar, const unsigned int file_version) { ar & tmpMap; ar & a; ar & d; ar & stringList; } void serialize(boost::archive::polymorphic_iarchive & ar, const unsigned int file_version) { ///////////////////////////////////////////////////////////////////// /* Now the right thing to do over here is ar & tmpMap; ar & a; ar & d; ar & stringList; */ /////////////////////////////////////////////////////////////////////// //But instead, if by mistake user writes something like ar & a; ar & d; ar & stringList; ar & tmpMap; /* So how to handle such problem? Can I validate data somehow before it gets deserialized? On some platforms like SuSE linux I have observed that such thing doesn't throw exception and we get SEGV. */ } }; Thanks, Sameer