Есть ли способ передать новый экземпляр класса (класс python, который наследует класс c ++) в c ++ без необходимости удерживать возврат объекта и просто обрабатывать его как указатель c ++.
Например:
C ++
object pyInstance = GetLocalDict()["makeNewGamePlay"]();
CGEPYGameMode* m_pGameMode = extract< CGEPYGameMode* >( pyInstance );
pyth:
class Alpha(CGEPYGameMode):
def someFunct(self):
pass
def makeNewGamePlay():
return Alpha()
pyInstance - это экземпляр класса python, а m_pGameMode - указатель на базовый класс c ++ того же экземпляра. Однако, если я сохраню указатель и позволю объекту выйти из области видимости, объект python будет очищен. Есть ли способ получить указатель c ++ без очистки объекта?
Дополнительная информация: объект Python на нативный указатель c ++