Fix #1819847 %template with just one default template parameter

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10189 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2007-12-12 19:00:15 +00:00
commit b79ebf39fa
8 changed files with 117 additions and 11 deletions

View file

@ -0,0 +1,33 @@
%module template_default_class_parms
%inline %{
namespace Space {
struct SomeType {};
struct AnotherType {};
template<typename C, typename D = SomeType, typename E = int> class Bar {
public:
C CType;
D DType;
E EType;
Bar(C c, D d, E e) {}
C method(C c, D d, E e) { return c; }
};
template<typename T = SomeType> class Foo {
public:
T TType;
Foo(T t) {}
T method(T t) { return t; }
};
template<typename T = int> class ATemplate {};
}
%}
// Use defaults
%template(DefaultBar) Space::Bar<double>;
%template(DefaultFoo) Space::Foo<>;
// Don't use all defaults
%template(BarAnotherTypeBool) Space::Bar<Space::AnotherType, bool>;
%template(FooAnotherType) Space::Foo<Space::AnotherType>;
%template() Space::ATemplate<>;