mirror of https://github.com/swig/swig
46 lines
934 B
OpenEdge ABL
46 lines
934 B
OpenEdge ABL
%module template_enum
|
|
|
|
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo<int>; /* Ruby, wrong class name */
|
|
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo<double>; /* Ruby, wrong class name */
|
|
|
|
%inline %{
|
|
template<class T> class foo {
|
|
public:
|
|
enum { FOO, BAR };
|
|
};
|
|
%}
|
|
|
|
%template(foo_i) foo<int>;
|
|
%template(foo_d) foo<double>;
|
|
|
|
#ifdef SWIGD
|
|
// Workaround for the D module which uses the literal value in the generated wrapper code.
|
|
%dconstvalue("3") Manta::ColorSpace<Manta::RGBTraits>::NumComponents;
|
|
#endif
|
|
|
|
%inline {
|
|
|
|
namespace Manta {
|
|
template<typename Traits> class ColorSpace {
|
|
public:
|
|
typedef typename Traits::ComponentType ComponentType;
|
|
enum { NumComponents = Traits::NumComponents};
|
|
|
|
ComponentType data[NumComponents];
|
|
};
|
|
}
|
|
|
|
namespace Manta {
|
|
class RGBTraits {
|
|
public:
|
|
typedef float ComponentType;
|
|
enum {NumComponents = 3};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
namespace Manta {
|
|
%template(Color) ColorSpace<RGBTraits>;
|
|
};
|