%module x

// Just the following languages tested
#if defined (SWIGCSHARP) || defined (SWIGD)
%typemap(out, optimal="1") SWIGTYPE %{
  $result = new $1_ltype((const $1_ltype &)$1);
%}
#elif defined (SWIGJAVA)
%typemap(out, optimal="1") SWIGTYPE %{
  *($&1_ltype*)&$result = new $1_ltype((const $1_ltype &)$1);
%}
#elif defined (SWIGUTL)
%typemap(out,noblock="1", optimal="1") SWIGTYPE {
  %set_output(SWIG_NewPointerObj(%new_copy($1, $ltype), $&descriptor, SWIG_POINTER_OWN | %newpointer_flags));
}
#endif

// This results in an action which SWIG should disable "optimal" for, but
// it was failing to.  Fixed in SWIG 4.1.0.
%exception XX::create() "$action\n{while(sleep(1)){}}"

%ignore XX::operator=;

#ifdef SWIGD
%rename(trace) XX::debug;
#endif

%inline %{
#include <iostream>
using namespace std;

struct XX {
  XX() { if (debug) cout << "XX()" << endl; }
  XX(int i) { if (debug) cout << "XX(" << i << ")" << endl; }
  XX(const XX &other) { if (debug) cout << "XX(const XX &)" << endl; }
  XX& operator =(const XX &other) { if (debug) cout << "operator=(const XX &)" << endl; return *this; }
  ~XX() { if (debug) cout << "~XX()" << endl; }
  static XX create() {
    return XX(123);
  }
  static bool debug;
};
bool XX::debug = true;
%}

