1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
%module template_ns_enum %inline %{ namespace hello { enum Hello { Hi, Hola }; template <Hello H> struct traits { typedef double value_type; }; traits<Hi>::value_type say_hi() { return traits<Hi>::value_type(1); } } %}