Hi Andrew,

This particular warning is broken in the context of the visitor
pattern.  The warning doesn't highlight a bug, but fixing this bogus
warning can introduce bugs because of the unnecessary dummy code that
has to be introduced.  I deem this *extremely* bad practice so will
not merge these "fixes" into the code base as it'll lower overall
maintainability and is far more likely to introduce bugs than the
original code.

Might I recommend that this warning is switched off completely if you can.

Robert.

On Fri, May 23, 2008 at 11:51 AM, Andrew Bettison <[EMAIL PROTECTED]> wrote:
> I am working on a project which uses OpenSceneGraph and is compiled using
> GCC with all warnings enabled and treated as errors.  This is mandated by
> the client and in the contract, plus it's good practice in general.
>
> Until recently I was building against the wonderful OSG 2.2.0 library (which
> is current on Debian testing), but I have just downloaded, built from
> source, and installed OSG 2.4.0, which I hope will be even more wonderful.
> However, it produces many warnings of the following kind, which did not
> appear in 2.2.0, and which make it impossible for my project to build
> successfully:
>
> /usr/include/osg/NodeVisitor:233: warning: 'virtual void
> osg::NodeVisitor::apply(osg::Geode&)' was hidden
> /usr/include/osg/CollectOccludersVisitor:49: warning:   by
> 'osg::CollectOccludersVisitor::apply'
>
> This is the "hidden virtual" problem, described in this C++ FAQ LITE item.
> It is a real drag, because it makes the visitor pattern cumbersome to
> implement, since you have to define visit (or in this case, apply) methods
> for every single overloaded argument, in every single subclass.  Then, if
> you want to handle a new type in your Visitor superclass, you have to add
> the new method to every single subclass.  As far as I know, there's no way
> around this in C++.
>
> So I attach some patched header files that eliminate the warnings by
> defining all the hidden methods.  I haven't done a thorough search through
> OSG 2.4.0 to find all instances of this kind of error; I have only fixed the
> warnings that I have encountered so far in my project.  If I find more, I
> will submit more patches.
>
> Regards,
> Andrew
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to