swig/Examples/test-suite/template_enum.i
David Nadlinger a355d2d46a Added special cases to the test-suite as required for D.
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
2010-11-18 00:17:37 +00:00

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>;
};