[C++-sig] ArgumentError when use the shared_ptr<T>

ZaeX zaexage at gmail.com
Tue Jan 27 06:30:16 CET 2009

Hi, c++-sig:

I got a problem involving shared_ptr here,
according to some threads here I believed it should be solved by
however after many tries, I still cannot make it work. although this problem
may look old, I really need your help or hint.
My environment is WinXP + python 2.5.4 + boost1.36
class A
    std::vector<int> vec;
    A(boost::shared_ptr<A>& ptr) :vec(ptr->vec)
    std::vector<int>& GetV(){return vec;}

class D
    boost::shared_ptr<A> m_aa;
    boost::shared_ptr<A>& GetAA() {return m_aa;}

implicitly_convertible<boost::shared_ptr<A>, A>();
I exported the A and D, and also added the implicitly_convertible
but when I tried to do this in python:

d = D()
a = d.GetAA()

Python interpreter will complains
Boost.Python.ArgumentError: Python argument types in
did not match C++ signature:
    GetV(class A {lvalue})
Can you give some help on this, I have been stuck here for 2 days.

Time is mana, we must hurry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20090127/7385c1df/attachment.htm>

More information about the Cplusplus-sig mailing list