diff options
Diffstat (limited to 'share/swig/2.0.11/perl5/std_common.i')
-rw-r--r-- | share/swig/2.0.11/perl5/std_common.i | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/share/swig/2.0.11/perl5/std_common.i b/share/swig/2.0.11/perl5/std_common.i new file mode 100644 index 0000000..c365139 --- /dev/null +++ b/share/swig/2.0.11/perl5/std_common.i @@ -0,0 +1,26 @@ +/* ----------------------------------------------------------------------------- + * std_common.i + * + * SWIG typemaps for STL - common utilities + * ----------------------------------------------------------------------------- */ + +%include <std/std_except.i> + +%apply size_t { std::size_t }; + +%{ +#include <string> + +double SwigSvToNumber(SV* sv) { + return SvIOK(sv) ? double(SvIVX(sv)) : SvNVX(sv); +} +std::string SwigSvToString(SV* sv) { + STRLEN len; + char *ptr = SvPV(sv, len); + return std::string(ptr, len); +} +void SwigSvFromString(SV* sv, const std::string& s) { + sv_setpvn(sv,s.data(),s.size()); +} +%} + |