summaryrefslogtreecommitdiff
path: root/devtools/swigwin-1.3.34/Lib/guile/cplusplus.i
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/swigwin-1.3.34/Lib/guile/cplusplus.i')
-rw-r--r--devtools/swigwin-1.3.34/Lib/guile/cplusplus.i25
1 files changed, 25 insertions, 0 deletions
diff --git a/devtools/swigwin-1.3.34/Lib/guile/cplusplus.i b/devtools/swigwin-1.3.34/Lib/guile/cplusplus.i
new file mode 100644
index 0000000..cb4cf74
--- /dev/null
+++ b/devtools/swigwin-1.3.34/Lib/guile/cplusplus.i
@@ -0,0 +1,25 @@
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * cplusplus.i
+ *
+ * SWIG typemaps for C++
+ * ----------------------------------------------------------------------------- */
+
+%typemap(guile,out) string, std::string {
+ $result = gh_str02scm(const_cast<char*>($1.c_str()));
+}
+%typemap(guile,in) string, std::string {
+ $1 = SWIG_scm2str($input);
+}
+
+%typemap(guile,out) complex, complex<double>, std::complex<double> {
+ $result = scm_make_rectangular( gh_double2scm ($1.real ()),
+ gh_double2scm ($1.imag ()) );
+}
+%typemap(guile,in) complex, complex<double>, std::complex<double> {
+ $1 = std::complex<double>( gh_scm2double (scm_real_part ($input)),
+ gh_scm2double (scm_imag_part ($input)) );
+}
+