Bonjour à tous,
Je suis en train de modéliser un trajet. On me donne les étapes (lati/longi/ordre).
J'ai donc fait :
Comme vous le voyez, mes données sont stockées dans des "Property", ce qui me permet de brancher des écouteurs sur l'ordre des étapes ou bien les positions de celle-ci. C'est pourquoi je souhaite utiliser des pointeurs ou références.
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 class CTrackStep { private: TDoubleProperty* pLati; TDoubleProperty* pLongi; }; class CTrack { private: struct SOrderedStep { SOrderedStep(TIntProperty* iOrder, CTrackStep* pStep) : m_iOrder(*iOrder), m_pStep(pStep) {} TIntProperty* m_iOrder; CTrackStep* m_pStep; }; struct BY_ORDER { /* indexation par les ordres */ }; typedef boost::multi_index_container< SOrderedStep, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag<BY_ORDER>, boost::multi_index::member<SOrderedStep, TIntProperty&, &SOrderedStep::m_iOrder > > > TOrderedStepContainer; };
Le soucis c'est que si je dois trier par des "TIntProperty&", ça ne fonctionne pas car on ne peut pas créer de pointeur de membre vers une référence, et si je mets "TIntProperty*", est-ce qu'il ne va pas trier non pas par la valeur de TIntProperty mais par la valeur du pointeur ?
Est-ce que ça ne serait pas un mauvaix choix que d'utiliser le multi_index pour gérer ceci ?
Merci,
Aurélien
Partager