He creado un pequeño módulo que muestra como hacer un wrapper de una
función que toma y devuelve std::string en XS.

  https://github.com/salva/p5-Acme-WrappingTheSTLFromXS

El código XS queda muy simple:


https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/WrappingTheSTLFromXS.xs

El truco en realidad está en los typemaps, que son fragmentos de código
donde se define como convertir los datos entre los tipos de C/C++ y las
estructuras de datos usadas internamente por Perl:

  https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/typemap

En mi opinión, los typemaps son una de los puntos clave para conseguir que
el código XS no se complique.

2016-04-03 22:28 GMT+02:00 Pablo Rodriguez <
[email protected]>:

> Hola
>
> En la reunión del otro día comente que no había conseguido que funcionara
> FFI::Platypus con funciones con tipos de la STL en C++, ni siquiera con el
> más básico: std::string.
>
> Joaquin apuntó a un parrafo en la documentación:
> https://metacpan.org/pod/FFI::Platypus::Lang::CPP#the-standard-C-library
>
> Tampoco he conseguido hacerlo funcionar.
>
> ¿Alguien más se anima a probar?
>
> El código básico para probarlo está en el repo con las transparencias:
> https://bitbucket.org/pablorodriguez/slidesperlinteroperability/src/7ef0f4f8a53e0bbd8d28ea01e10e0d37ddbd0a50/examples/Platypus/Cpp/?at=master
>
> Un saludo
>
> _______________________________________________
> Madrid-pm mailing list
> [email protected]
> http://mail.pm.org/mailman/listinfo/madrid-pm
>
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm

Responder a