• # Autre bindings c++ : cppyy

    Posté par . En réponse à la dépêche Python pour les sciences, une présentation. Évalué à 10.

    Merci pour cette dépêche !

    Pour ceux que ça intéresse je voulais aussi signaler cppyy qui permet de réaliser des bindings C++ de façon extrêmement simple.
    Juste un exemple extrait de la doc :

    >>> import cppyy
    >>> cppyy.cppdef("""
    ... class MyClass {
    ... public:
    ... MyClass(int i) : m_data(i) {}
    ... virtual ~MyClass() {}
    ... virtual int add_int(int i) { return m_data + i; }
    ... int m_data;
    ... };""")
    True
    >>> from cppyy.gbl import MyClass
    >>> m = MyClass(42)
    >>> cppyy.cppdef("""
    ... void say_hello(MyClass* m) {
    ... std::cout << "Hello, the number is: " << m->m_data << std::endl;
    ... }""")
    True
    >>> MyClass.say_hello = cppyy.gbl.say_hello
    >>> m.say_hello()
    Hello, the number is: 42

    C'est par exemple ce qui est utilisé pour utiliser les librairies C++ ROOT avec python (ROOT est un système complet d'analyse numérique très utilisé en physique des hautes énergies et développé au CERN )