¿Cómo envolver una función C ++ que devuelve boost :: opcional <T>?
Quiero ajustar una función que devuelve unboost::optional<T>
. Es decir, dado:
class Foo {
boost::optional<T> func();
};
Me gustaría terminar de alguna manera para que Python obtengaT
por valor, oNone
:
class_<Foo>("Foo")
.def("func", func, return_value_policy<return_boost_optional???>);
Normalmente si solo devuelve unT
, Podría usar:
class_<Foo>("Foo")
.def("func", func, return_value_policy<return_by_value>());
Pero como devuelve unboost::optional<T>
, también podría volverboost::none
, que me gustaría terminar como PythonNone
.
¿Hay alguna manera de hacer esto con los convertidores existentes? Si no, ¿hay alguna solución para lograr el mismo efecto?