/trunk/Examples/test-suite/template_enum.i
Swig | 45 lines | 35 code | 10 blank | 0 comment | 0 complexity | d0ec88e1b4cc136c538fad42af7b388a MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %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>;
- };