| %module template_expr |
| |
| // bug #925555 |
| %inline %{ |
| struct ThisType {}; |
| template<int _size, int _stride, class __elementTypeSequence, class __dataPtrType> |
| class vctFixedLengthConstSequenceBase {}; |
| |
| template<int _size, int __stride, class __elementTypeSequence, |
| class __dataPtrType, class __elementType> |
| inline const ThisType & |
| ConcatenationOf(const vctFixedLengthConstSequenceBase<_size - 1, |
| __stride, __elementTypeSequence, __dataPtrType> & other, |
| __elementType last); |
| %} |
| |
| // bug #956282 |
| %inline %{ |
| |
| |
| template<int q> |
| class X {}; |
| |
| |
| %} |
| |
| %template(X_1) X<1>; |
| %template(X_m1) X<-1>; |
| %template(X_1plus2) X<1+2>; |
| %template(X_1024div8) X<1024/8>; |
| |
| |
| // bug #646275 |
| |
| %inline %{ |
| struct Ty {}; |
| template<typename Type, short a> struct Test {}; |
| template<int rank, typename X, typename Type> struct CondRetType { |
| typedef Type TestRm1; |
| }; |
| |
| template<typename Type, short Rank> |
| void Func(typename CondRetType< Rank!=1, |
| Test<Type,Rank-1>, Type>::TestRm1) {} |
| %} |
| |
| |
| // bug #994301 |
| |
| |
| %inline %{ |
| template<int foo> class X994301 {}; |
| %} |
| |
| %template(X994301_ternary) X<(7 >= 4) ? 1 + 1 : 1>; |
| %template(X994301_ternary2) X<(7 <= 4) ? 1 + 1 : 1>; |
| |
| |
| // bug #1338527 (still broken) |
| |
| |
| %inline %{ |
| |
| template<typename, typename> class PatchList; |
| |
| %} |