Я использую pybind11 для создания сопоставлений Python для библиотеки C++ и использую pybind11::keep_alive для управления временем существования объектов C++, на которые ссылаются другие объекты. Это прекрасно работает, когда реферер является прямым возвращаемым значением, но у меня возникают проблемы, когда реферер является частью совокупного возвращаемого значения.
Наверное, проще всего проиллюстрировать это на упрощенном, но полный пример:
Код: Выделить всё
#include
#include
#include
namespace py = pybind11;
class Container {
public:
int some_value;
Container() {
std::cerr
Источник: [url]https://stackoverflow.com/questions/78136157/how-do-i-create-a-keep-alive-relationship-between-an-object-and-the-members-of-a[/url]