%module template_int_const %warnfilter(SWIGWARN_RUBY_WRONG_NAME) interface_traits; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_RUBY_WRONG_NAME) module_traits; /* Ruby, wrong class name */ %inline %{ enum Polarization { UnaryPolarization, BinaryPolarization }; struct interface_traits { static const Polarization polarization = UnaryPolarization; }; template <Polarization P> struct Interface_ { }; typedef unsigned int Category; struct module_traits { static const Category category = 1; }; template <Category C> struct Module { }; %} %template(Interface_UP) Interface_<UnaryPolarization>; %template(Module_1) Module<1>; %inline %{ struct ExtInterface1 : Interface_<UnaryPolarization> // works { }; struct ExtInterface2 : Interface_<interface_traits::polarization> // doesn't work { }; struct ExtModule1 : Module<1> // works { }; struct ExtModule2 : Module<module_traits::category> // doesn't work { }; %}
Generated by dwww version 1.15 on Tue Jul 2 00:49:32 CEST 2024.