J'ai une classe issue d'une bibliothèque dynamique et donc importée par une fonction de construction.
Cette classe définit des struct (VertexProp et EdgeProp).
J'ai besoin d'accéder à ces struct pour définir un type qui, lui, est créé statiquement par le code suivant (ce sont les propriétés des sommets et arêtes d'un graphe Boost)
Hors ce type, je ne le connaît pas dans mon code. Comment faire ?
J'ai envisagé plusieurs pistes, mais aucune ne me semble valable :
1) les commandes du genre MonInstanceDeClasse.VertexProp ou avec :: sont refusée par le compilateur car typedef est statique.
2) utiliser boost.type pour récupérer le type (genre de typeof), mais il faut que le type soit statiquement lié au code. Donc on retombe sur le même problème.
3) créer une autre fonction dans mon interface avec la bib dynamique pour importer directement le type (soit de la classe soit directement du struct) mais il est apparemment impossible de passer un type ou une définition de classe comme argument de fonction. (va_args par exemple est une macro...)
4) que la classe ait une méthode qui renvoie son type ? J'ai bien l'impression qu'on retombe dans le problème 2...
5) contourner le problème ? créer le graphe dans la bibliothèque dynamique ? Mais ça explose mon modèle... Sans rentrer plus dans les détails, ma bibliothèque dynamique est censée être juste une interface de description. Et de plus rien ne prouve que ça ne vas pas reporter le problème ailleurs...