У меня есть класс, который я хочу передать shared_ptr
. Таким образом, я хочу, чтобы получить построен с заводским способом:boost python make_constructor с аргументами по умолчанию
py::class_<MyClass, boost::shared_ptr<MyClass>>("MyClass")
.def("__init__", py::make_constructor(MyClass::factory))
;
Это работало, когда factory()
просто взял 2 аргумента. Но теперь я хочу, чтобы взять 2 или 3. Таким образом, я использовал перегрузки макросъемки
BOOST_PYTHON_FUNCTION_OVERLOADS(MyClass_factory_overloads, MyClass::factory, 2, 3)
Но как я прохожу, что в make_constructor
?
@Barry Я изменил код, чтобы распечатать адрес объекта, так что теперь это более очевидно, что он использует shared_ptr вместо двух разных объектов. –