Tengo una clase de C++, que tiene los siguientes métodos:impulso :: pitón propiedades de cadena convertible
class Bar {
...
const Foo& getFoo() const;
void setFoo(const Foo&);
};
donde la clase Foo
se puede convertir en std::string
(que tiene un constructor implícito de std::string
y un operador std::string
fundido)
que definen una clase contenedora Boost.Python, que, entre otras cosas, define una propiedad basada en dos funciones anteriores:
class_<Bar>("Bar")
...
.add_property(
"foo",
make_function(
&Bar::getFoo,
return_value_policy<return_by_value>()),
&Bar::setFoo)
...
también me marca la clase como convertibles a/desde std::string
.
implicitly_convertible<std::string, Foo>();
implicitly_convertible<Foo, std::string>();
Pero en tiempo de ejecución todavía consigo un error de conversión tratando de acceder a este inmueble:
TypeError: No to_python (by-value) converter found for C++ type: Foo
cómo lograr la conversión sin demasiado repetitivo de funciones de contenedor? (Ya tengo todas las funciones de conversión de la clase Foo
, por lo que la duplicación no es deseable.