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

Joel Gerard llywelyn.geo at yahoo.com
Fri Oct 24 23:37:33 CEST 2003


Nevermind. I've seen the answer in a different post.

http://mail.python.org/pipermail/c++-sig/2003-September/005510.html

I think the documentation could benefit from this piece of information though.  It seems unusual
to me that ANSI C++ leaves the () off. Really?  It seems more logical that they appear.

Joel

--- Joel Gerard <llywelyn.geo at yahoo.com> wrote:
> 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
> 
> 
> 
> 
> _______________________________________________
> C++-sig mailing list
> C++-sig at python.org
> http://mail.python.org/mailman/listinfo/c++-sig


=====


__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com




More information about the Cplusplus-sig mailing list