[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