Bonjour,

J'essaye d'incorporer une fonction de sauvegarde dans une de mes classes à l'aide de la librairie boost::serialize (on me l'a conseillé sur ce forum ).
J'ai donc ajouté à ma classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
friend class boost::serialization::access;
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
        ar & test;
    }
    int test
Dans mon code principal, je mets:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
std::string tempfilename = fileName + ".tmp";
        std::ofstream ofs(tempfilename.c_str());
 
        boost::archive::text_oarchive oa(ofs);
 
        oa << obj;
        ofs.close();
et j'obtiens comme message d'erreur à la compilation:
Error 1 error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>' C:\Boost\include\boost-1_33_1\boost\archive\detail\oserializer.hpp 567
J'arrive sur ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
template<class Archive, class T>
inline void save(Archive & ar, T &t){
    // if your program traps here, it indicates taht your doing one of the following:
    // a) serializing an object of a type marked "track_never" through a pointer.
    // b) saving an non-const object of a type not markd "track_never)
    // Either of these conditions may be an indicator of an error usage of the
    // serialization library and should be double checked.  See documentation on
    // object tracking.
    BOOST_STATIC_ASSERT(check_tracking<T>::value);
        save(ar, const_cast<const T &>(t));
}
dans oserializer.hpp

Il semblerait qu'il ne sache pas comment sauvegarder ma classe!! Pourtant je lui ai rajouté le membre serialize ?
Quel est le problème?

Note: qd je retire ofs << obj de mon code principal, je n'ai plus aucun problème de compilation (normal, il n'essaye plus d'aller chercher serializable qu'il ne trouve certainement pas)

Cordialement,
Rodrigue