%module template_ns_enum2 %inline %{ namespace hi { enum Hello { Hi, Hola }; template struct traits { }; template <> struct traits { typedef int value_type; }; template <> struct traits { typedef double value_type; }; struct B { const traits::value_type& evaluate(const traits::value_type& e) const; }; const traits::value_type& B::evaluate(const traits::value_type& e) const { return e; } } %}