Boost.Python удлинение жизни объекту
От: Аноним  
Дата: 15.11.10 19:24
Оценка:
struct A 
{
    void inc();
    void dec();
};

struct B 
{
    B(A& a_): a(a_)
    {
        a.inc();
    }
    ~B()
    {
        a.dec();
    }
    A& a;
};

struct C
{
    C(A& a): a(a_)
    {
        a.inc();
    }
    ~C()
    {
        a.dec();
    }
    A& a;
};

Как можно реализовать подобное поведение, что бы пока существуют (в Python) объекты типа B и C, которые при создании принимают ссылку на ранее созданный объект типа A, объект типа A не помирал?
Сходу, под документации не могу понять.
Заранее спасибо.
Re: Boost.Python удлинение жизни объекту
От: IROV..  
Дата: 19.11.10 17:15
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Как можно реализовать подобное поведение, что бы пока существуют (в Python) объекты типа B и C, которые при создании принимают ссылку на ранее созданный объект типа A, объект типа A не помирал?
А>Сходу, под документации не могу понять.
А>Заранее спасибо.

Наследовать от boost::intrusive_ptr

и найти в гугле, адаптер для boost::python типа boost::intrusive_ptr (встроеный есть только для boost::shared_ptr)
я не волшебник, я только учусь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.