Fix usage of nested template classes within templated classes so that compileable code is generated.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11737 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
dd5714ea28
commit
b502f4fc5a
3 changed files with 31 additions and 2 deletions
|
|
@ -6,8 +6,20 @@
|
|||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterClass::Inner2;
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate1;
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate2;
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate3;
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedStruct;
|
||||
|
||||
namespace ns {
|
||||
template <class T> struct ForwardTemplate;
|
||||
}
|
||||
%{
|
||||
namespace ns {
|
||||
template <class T> struct ForwardTemplate {
|
||||
void tmethod(T t) {}
|
||||
};
|
||||
}
|
||||
%}
|
||||
|
||||
%inline %{
|
||||
|
||||
namespace ns {
|
||||
|
|
@ -80,10 +92,17 @@ namespace ns {
|
|||
void hohum() {}
|
||||
};
|
||||
UU hohum(UU u) { return u; }
|
||||
template <typename VV> struct NestedInnerTemplate3 : public NestedInnerTemplate2<VV> {
|
||||
void hohum() {}
|
||||
};
|
||||
struct NestedStruct {
|
||||
NestedStruct() {}
|
||||
void hohum() {}
|
||||
};
|
||||
NestedInnerTemplate1<short> useNestedInnerTemplate1(const NestedInnerTemplate1<short>& inner) { return inner; }
|
||||
NestedInnerTemplate2<short> useNestedInnerTemplate2(const NestedInnerTemplate2<short>& inner) { return inner; }
|
||||
NestedInnerTemplate3<short> useNestedInnerTemplate3(const NestedInnerTemplate3<short>& inner) { return inner; }
|
||||
NestedStruct useNestedStruct(const NestedStruct& inner) { return inner; }
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue