[C++-sig] Extracting C++ objects: documentation example fails.

Joel Gerard llywelyn.geo at yahoo.com
Fri Oct 24 23:02:27 CEST 2003


Hi there,

I'm trying to extract some wrapped objects from a python script in C++.
I've tried running the example from the docs to see how extract works, but
it wont compile:

struct X
{
   X(int x) : v(x) {}
   int value() { return v; }
 private:
   int v;
};

foo()
{
    object x_class(
       class_<X>("X", init<int>())
          .def("value", &X::value))
          ;

    // Instantiate an X object through the Python interface.
    // Its lifetime is now managed by x_obj.
    object x_obj = x_class(3);

    // Get a reference to the C++ object out of the Python object
    X& x = extract<X&>(x_obj);
    assert(x.value() == 3);
}

I keep getting this error:

d:\dev\samples\python\pythonlibtest\main.cpp(91): error C2440:
'initializing' : cannot convert from 'boost::python::extract<T>' to 'X &'
        with
        [
            T=X &
        ]


I'm using VC 7.  Is there something separate that I have to do to get this
example to compile?

Thanks,
Joel







More information about the Cplusplus-sig mailing list