<div dir="ltr"><div>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.<br><br>  <a href="https://github.com/salva/p5-Acme-WrappingTheSTLFromXS">https://github.com/salva/p5-Acme-WrappingTheSTLFromXS</a><br><br></div><div>El código XS queda muy simple:<br><br>  <a href="https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/WrappingTheSTLFromXS.xs">https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/WrappingTheSTLFromXS.xs</a><br></div><div><br></div>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:<br><br>  <a href="https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/typemap">https://github.com/salva/p5-Acme-WrappingTheSTLFromXS/blob/master/typemap</a><br><br>En mi opinión, los typemaps son una de los puntos clave para conseguir 
que el código XS no se complique.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-03 22:28 GMT+02:00 Pablo Rodriguez <span dir="ltr"><<a href="mailto:pablo.rodriguez.gonzalez@gmail.com" target="_blank">pablo.rodriguez.gonzalez@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hola<br><br></div>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.<br><br></div>Joaquin apuntó a un parrafo en la documentación: <a href="https://metacpan.org/pod/FFI::Platypus::Lang::CPP#the-standard-C-library" target="_blank">https://metacpan.org/pod/FFI::Platypus::Lang::CPP#the-standard-C-library</a> <br><br></div>Tampoco he conseguido hacerlo funcionar.<br><br></div>¿Alguien más se anima a probar?<br><br></div><div>El código básico para probarlo está en el repo con las transparencias: <a href="https://bitbucket.org/pablorodriguez/slidesperlinteroperability/src/7ef0f4f8a53e0bbd8d28ea01e10e0d37ddbd0a50/examples/Platypus/Cpp/?at=master" target="_blank">https://bitbucket.org/pablorodriguez/slidesperlinteroperability/src/7ef0f4f8a53e0bbd8d28ea01e10e0d37ddbd0a50/examples/Platypus/Cpp/?at=master</a><br></div><div><br></div>Un saludo<br></div>
<br>_______________________________________________<br>
Madrid-pm mailing list<br>
<a href="mailto:Madrid-pm@pm.org">Madrid-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/madrid-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/madrid-pm</a><br></blockquote></div><br></div>