Bonjour, je souhaite sérialiser une classe avec en attribut une liste de pointeurs sur une classe générique
Tout d'abord la classe mère dont dérive la classe générique
la classe générique :
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 class Base{ public : friend class boost::serialization::access; virtual ~Base(){} template<class Archive> void serialize(Archive & ar, const unsigned int version) { } virtual string Getid() = 0 ; };
la classe que je veux sérialiser :
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 template<typename T> class GenericBase : public Base { public: friend class boost::serialization::access; GenericBase<T>(string id){} ~GenericBase(){} string id; vector<T> data template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object<Base>(*this); ar & BOOST_SERIALIZATION_NVP( id); ar & BOOST_SERIALIZATION_NVP( data); } string Getid() { return id; } };
je crois qu'il faut enregistrer auprès des flux output et input chaque GenericBase<T>spécialisé c'est ça ?
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 class Use { public: friend class boost::serialization::access; int Id; map<string, Base*> BaseDatas; Use(); ~Use(); };
Partager