Also apply csvar{in,out} typemaps to std::complex references

This is needed to handle the artificial complex-valued properties created
using %naturalvar correctly.
This commit is contained in:
Vadim Zeitlin 2017-04-15 20:18:24 +02:00
commit 95aa3d9389

View file

@ -33,14 +33,14 @@ public:
return new System.Numerics.Complex(cppret.real(), cppret.imag()); return new System.Numerics.Complex(cppret.real(), cppret.imag());
} }
%typemap(csvarin, excode=SWIGEXCODE2) std::complex<T>* %{ %typemap(csvarin, excode=SWIGEXCODE2) std::complex<T>*, const std::complex<T>& %{
set { set {
var cppvalue = new Complex_##T((T)value.Real, (T)value.Imaginary); var cppvalue = new Complex_##T((T)value.Real, (T)value.Imaginary);
$imcall;$excode $imcall;$excode
} }
%} %}
%typemap(csvarout, excode=SWIGEXCODE2) std::complex<T>* %{ %typemap(csvarout, excode=SWIGEXCODE2) std::complex<T>*, const std::complex<T>& %{
get { get {
var cppret = new Complex_##T($imcall, $owner);$excode var cppret = new Complex_##T($imcall, $owner);$excode
return new System.Numerics.Complex(cppret.real(), cppret.imag()); return new System.Numerics.Complex(cppret.real(), cppret.imag());