/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
- %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>;