diff options
Diffstat (limited to 'Examples/test-suite/template_template_template_parameters.i')
-rw-r--r-- | Examples/test-suite/template_template_template_parameters.i | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Examples/test-suite/template_template_template_parameters.i b/Examples/test-suite/template_template_template_parameters.i new file mode 100644 index 000000000..a2588d3be --- /dev/null +++ b/Examples/test-suite/template_template_template_parameters.i @@ -0,0 +1,45 @@ +%module template_template_template_parameters + +%inline %{ +// Github issue #624 +class CustomAttrs { +public: + enum dattr1d {pos, vel, someCustomCaseVar, d1dLast}; +}; + +template <class TT> +class A { +public: + TT attributes; +}; + +template <template<class> class A, class T> +class B : public A<T> { +public: + virtual void BMethod(T t_parm, A<T> at_parm) {} +}; + +template <template<template<class> class, class> class Op, template<class> class X, class Y> +class C : public Op<X,Y> { +public: + virtual void CMethod(Y y_parm, Op<X, Y> opxy_parm) {} +}; + +template <template<template<class K1> class K2, class K3> class L, template<class K4> class M, class N> +class D : public L<M,N> { +public: + virtual void DMethod(N n_parm, L<M, N> lmn_parm) {} +}; +%} + +%{ +template class A<CustomAttrs>; +template class B<A, CustomAttrs>; +template class C<B, A, CustomAttrs>; +template class D<B, A, CustomAttrs>; +%} + +%template(AC) A<CustomAttrs>; +%template(BAC) B<A, CustomAttrs>; +%template(CBAC) C<B, A, CustomAttrs>; +%template(DBAC) D<B, A, CustomAttrs>; |