Journal
Building a Reflective Object System in C++
Une tentative pour faire de l'introspection en C++. Les prototypes de classes sont décrits dans un langage intermédiaire (ici un IDL maison) qui est ensuite transformé en C++ (ici via le préprocesseur). Le code généré contient alors les classes décrites, mais aussi des objets spécifiques qui décrivent ces classes, leurs attributs et leurs méthodes.
Ces objets spécifiques permettent alors d'instancier les classes à partir de leurs noms, d'itérer sur les propriétés d'une classe, etc.
C'est un peu fastidieux et il y a des limitations, mais l'approche n'est pas bête.
Ces objets spécifiques permettent alors d'instancier les classes à partir de leurs noms, d'itérer sur les propriétés d'une classe, etc.
C'est un peu fastidieux et il y a des limitations, mais l'approche n'est pas bête.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.