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
|
|
@ -4714,7 +4714,8 @@ The easiest thing to do is turn a blind eye to the warning that SWIG generates,
|
|||
|
||||
<div class="code">
|
||||
<pre>
|
||||
#pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS
|
||||
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
|
||||
|
||||
class Outer {
|
||||
public:
|
||||
class Inner {
|
||||
|
|
@ -4830,6 +4831,7 @@ This should just be a last resort for unusual corner cases now as SWIG can parse
|
|||
<p>
|
||||
<b>Compatibility Note:</b> SWIG-1.3.40 and earlier versions did not have the <tt>nestedworkaround</tt> feature
|
||||
and the generated code resulting from parsing nested classes did not always compile.
|
||||
Nested class warnings could also not be suppressed using %warnfilter.
|
||||
</p>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -399,7 +399,7 @@ example.i(4): Syntax error in input.
|
|||
<li>308. Namespace alias '<em>name</em>' not allowed here. Assuming '<em>name</em>'
|
||||
<li>309. [private | protected] inheritance ignored.
|
||||
<li>310. Template '<em>name</em>' was already wrapped as '<em>name</em>' (ignored)
|
||||
<li>312. Nested class not currently supported (<em>name</em> ignored).
|
||||
<li>312. Unnamed nested class not currently supported (ignored).
|
||||
<li>313. Unrecognized extern type "<em>name</em>" (ignored).
|
||||
<li>314. '<em>identifier</em>' is a <em>lang</em> keyword.
|
||||
<li>315. Nothing known about '<em>identifier</em>'.
|
||||
|
|
@ -412,6 +412,7 @@ example.i(4): Syntax error in input.
|
|||
<li>322. Redundant redeclaration of '<em>name</em>'.
|
||||
<li>323. Recursive scope inheritance of '<em>name</em>'.
|
||||
<li>324. Named nested template instantiations not supported. Processing as if no name was given to %template().
|
||||
<li>325. Nested class not currently supported (<em>name</em> ignored).
|
||||
<li>350. operator new ignored.
|
||||
<li>351. operator delete ignored.
|
||||
<li>352. operator+ ignored.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue