This is a part of the pending merge of the D module. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12298 626c5289-ae23-0410-ae9c-e8d60b6d4f22
45 lines
934 B
OpenEdge ABL
45 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>;
|
|
};
|