Bonjour.

En tentant de résoudre ce problème, j'en suis arrivé à créer le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
 
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/vector.hpp>
#include <fstream>
 
class A
{
  public:
  A(){}
 
  private:
  //Serialization tasks
  friend class boost::serialization::access;
  template<class Archive>
  void serialize(Archive & , const unsigned int )
  {
 
  }
};
int main()
{
   std::vector<A> eig;
   std::cout <<eig.size()<<std::endl;
  std::ofstream of("file.txt");
  {
    boost::archive::text_oarchive oa(of);
    oa << eig;
  }
  of.close();
  std::ifstream ifs("file.txt");
  {
    boost::archive::text_iarchive ia(ifs);
    ia >> eig;
  }
  std::cout <<eig.size()<<std::endl;
 
   return 0;
}
Sur Gcc 4.4.1, le code compile correctement, mais j'ai l'erreur suivante à l'execution:
Citation Envoyé par bash
/.../boost/serialization/singleton.hpp:124: static T& boost::serialization::singleton<T>::get_instance() [with T = boost::archive::detail::iserializer<boost::archive::text_iarchive, std::vector<EigMemberProps<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<EigMemberProps<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >]: Assertion `! detail::singleton_wrapper<T>::m_is_destroyed' failed.
Par contre, codepad ne donne pas le même résultat.

Cureieusement, A est bien serializable sur mon compilateur, je l'ai testée, mais pas sur codepad ou elle produit la même erreur.


Si vous avez une idée...

Merci