By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,485 Members | 1,031 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,485 IT Pros & Developers. It's quick & easy.

SWIG: Tie lifetime of object to a result

P: n/a
Hi,

I wrap the following code with SWIG:

class Bar {};

class Foo
{
public:
const Bar* getBar() { return &m_bar; }

Bar m_bar;
};

'Foo::getBar' returns an internal reference to 'Bar' that is only
valid as long as 'Foo' is existing.
This raises a problem I am not able to solve using SWIG:
f = mod.Foo()
b = f.getBar()
del f


After these lines 'b' is a dangeling pointer because 'f' has been
deleted.
My question is: How can I tie the lifetime of 'Foo' to that of 'Bar' ?

Boost.Python has a special keyword to solve this problem
("return_internal_reference").
Please give me some hints how to solve this using SWIG.

I already worked through the SWIG documentation and asked google but
with no results.

Thanks !

Regards,
Oliver Tengler
Jul 18 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.