O
Oliver Tengler
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:
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
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:
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