blob: 37b1cf9984650299dbc4b6a7e425c17db3448c74 [file] [log] [blame]
%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
{
};
%}