Runtime Property Introspection



  • Hallo zusammen,

    ich habe mir die Boost::Python Library angeschaut. Ich würde gerne wissen wie dort das Konzept funktioniert C++ Klassen zu wrappen und in Python verfügbar zu machen. Das ganze läuft so ab:

    class A {
        public:
        int getInt()
        {
            return 7;
        }
    };
    

    Danach wird die Klasse nur mit dieser Zeile registriert:

    main_namespace["A"] = class_<A>("A").def("getNum",&A::getNum);
    

    Wenn ich in Python nun "A().getNum()" aufrufe bekomme ich die Zahl 7 zurück. Hat jemand irgendeine Idee wie der Rückgabewert automatisch erkannt wird? Ich bin mir nicht sicher, aber ich meine das es sowas in Objective C namens "Runtime Property Introspection" gibt.

    Ich wäre euch sehr dankbar!

    donnerCobra



  • def() wird wohl eine template-Funktion sein, ungefähr so:

    template <class T, class U>
    whatever *def(const char *, T (U::*)());
    

Anmelden zum Antworten