/tags/rel-1-3-26/SWIG/Examples/test-suite/template_extend_overload.i
Swig | 44 lines | 34 code | 10 blank | 0 comment | 0 complexity | d036eae6c625b7ad747d86f2332d45de MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module template_extend_overload
- %inline %{
- template <class T>
- struct A
- {
- };
- template <class Arg, class Res>
- struct B
- {
- };
- %}
- %define __compose_unary(Class, ArgType, ResType)
- Class<ResType> compose(const B<ArgType, ResType>& f)
- {
- return Class<ResType>();
- }
- %enddef
- %define __compose_unary_3(Class, Type)
- %extend Class<Type>
- {
- __compose_unary(Class, Type, bool);
- __compose_unary(Class, Type, double);
- __compose_unary(Class, Type, int);
- }
- %enddef
- %define compose_unary(Class)
- __compose_unary_3(Class, bool)
- __compose_unary_3(Class, double)
- __compose_unary_3(Class, int)
- %enddef
- compose_unary(A);
-
- %template(A_double) A<double>;
- %template(A_int) A<int>;
- %template(A_bool) A<bool>;