blob: e69a53c4ff87d5cbf59071222a55b215124a77a8 [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
{
};
%}