%module template_retvalue %inline %{ enum Hello { Hi, Hola }; struct C { C(int) {} }; template class A { public: A(int) {} }; template struct B { C get_c() { return C(0); } // this works A get_a() { return A(0); } // this doesn't }; %} %template(A_Hi) A; %template(B_Hola) B;