• [^] # Re: Intéressant !

    Posté par . En réponse à la dépêche CAMP 0.7.0 : bibliothèque de réflexion en C++ sous LGPL. Évalué à 6.

    Pas mal ? On connait :
    - xcpprefl : utilise un pré-compilateur, mais semble pas mal
    - agm::libreflection : grosses macros qui tachent, directement dans la classe en plus
    - boost::mirror : grosses macros qui tachent (un petit appercu), pas directement dans la classe cependant
    - xrtti : utillise un pré-compilateur
    - open-c++ : utilise un pré-compilateur

    (Si tu connais d'autres bibliothèques, merci de me le indiquer, ça m'intéresse!)

    Le problème du pré-compilateur, en plus de complexifier la chaîne de compilation, c'est qu'on ne peut pas choisir ce qu'on veut exporter et ce qu'on ne veut pas (ce qui est une nécessité pour nous) sans ajouter des informations à la main. Du coup, quitte à déclarer quelque chose, autant que ce soit le binding plutôt que d'utiliser un outil supplémentaire.

    En ce qui concerne l'avantage des templates par rapport aux macros, c'est qu'on peut déterminer plus de chose à la compilation (genre les types, les nombres d'arguments, les const/non const...). Du coup, il y a beaucoup moins de chose à déclarer lors du binding.