1 %module template_ns_enum2 2 3 %inline %{ 4 5 namespace hi 6 { 7 enum Hello { Hi, Hola }; 8 9 template <Hello> 10 struct traits 11 { 12 }; 13 14 template <> 15 struct traits<Hi> 16 { 17 typedef int value_type; 18 }; 19 20 template <> 21 struct traits<Hola> 22 { 23 typedef double value_type; 24 }; 25 26 struct B 27 { 28 const traits<Hola>::value_type& 29 evaluate(const traits<Hola>::value_type& e) const; 30 31 }; 32 const traits<Hola>::value_type& 33 B::evaluate(const traits<Hola>::value_type& e) const { 34 return e; 35 } 36 } 37 38 %} 39