Stop generating uncompileable code when using nested template classes in functions. Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively. Named nested class ignored warnings can now be suppressed by name using %warnfilter
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11735 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ebed6508e4
commit
aa61c716a8
12 changed files with 103 additions and 31 deletions
|
|
@ -2,7 +2,11 @@
|
|||
|
||||
// Test nested templates - that is template classes and template methods within a class.
|
||||
|
||||
#pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterClass::Inner1;
|
||||
%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::NestedStruct;
|
||||
|
||||
%inline %{
|
||||
|
||||
|
|
@ -33,6 +37,7 @@ namespace ns {
|
|||
void method1(Y y) {}
|
||||
};
|
||||
};
|
||||
Inner1<int> useInner1(const Inner1<int>& inner) { return inner; }
|
||||
|
||||
template <class Z> void InnerTMethod(Z z) {}
|
||||
|
||||
|
|
@ -52,6 +57,7 @@ namespace ns {
|
|||
void method1(Y y) {}
|
||||
};
|
||||
};
|
||||
Inner2<int> useInner2(const Inner2<int>& inner) { return inner; }
|
||||
int iii;
|
||||
};
|
||||
struct ABC {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue