1 %module template_retvalue
2 %inline %{
3 
4   enum Hello
5     {
6       Hi, Hola
7     };
8 
9   struct C
10   {
CC11       C(int) {}
12   };
13 
14   template <Hello>
15     class A
16     {
17     public:
A(int)18       A(int) {}
19     };
20 
21 
22   template <Hello h>
23     struct B
24     {
get_cB25       C get_c() { return C(0); }               // this works
get_aB26       A<h> get_a() { return A<h>(0); }         // this doesn't
27     };
28 
29   %}
30 
31 %template(A_Hi) A<Hi>;
32 %template(B_Hola) B<Hola>;
33