Hi JS, It's actually Cedric's that fixed most of the problems (he has write permission on osgAnimation). he works under Linux though so won't have seen this one. I've added him explictly to the CC to make sure that he spots your email and knows that things are quite yet resolved.
Robert. On Tue, Jun 16, 2009 at 3:36 PM, Jean-Sébastien Guay<jean-sebastien.g...@cm-labs.com> wrote: > Hi Robert, all, > > I'm getting compile errors in osgAnimation, its plugin and one of its > examples (osganimationtimeline) after an SVN update (which fixed other > compile errors seen on my CDash build - thanks Robert :-) ). They all come > from the fact that a class is forward-declared, and then used in a ref_ptr. > > Here are the two cases (they are repeated wherever the headers are included, > but there are only two unique cases): > > in osgAnimation/Timeline: > > namespace osgAnimation { > // ... > class StatsActionVisitor; > // ... > > class OSGANIMATION_EXPORT Timeline : public Action > { > // ... > protected: > // ... > osg::ref_ptr<osgAnimation::StatsActionVisitor> _statsVisitor; > // ... > }; > } > > and the same thing in osgAnimation::ActionVisitor, for > > std::vector<osg::ref_ptr<Timeline> > _stackTimeline; > > in the ActionVisitor class. > > Not sure how to fix this one, as the forward declaration seems to be used to > remove a circular dependency but it seems the complete type must be known. > > I've attached the complete compiler output. > > J-S > -- > ______________________________________________________ > Jean-Sebastien Guay jean-sebastien.g...@cm-labs.com > http://www.cm-labs.com/ > http://whitestar02.webhop.org/ > > 1>------ Build started: Project: osgAnimation, Configuration: Release Win32 > ------ > 1>Compiling... > 1>Timeline.cpp > 1>TimelineAnimationManager.cpp > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::StatsActionVisitor' > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(29) > : see declaration of 'osgAnimation::StatsActionVisitor' > 1> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(96) > : see reference to class template instantiation 'osg::ref_ptr<T>' being > compiled > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 1>StatsHandler.cpp > 1>..\..\..\src\osgAnimation\StatsHandler.cpp(428) : warning C4245: > 'argument' : conversion from 'int' to 'osg::Node::NodeMask', signed/unsigned > mismatch > 1>..\..\..\src\osgAnimation\StatsHandler.cpp(444) : warning C4245: > 'argument' : conversion from 'int' to 'osg::Node::NodeMask', signed/unsigned > mismatch > 1>StatsVisitor.cpp > 1>ActionVisitor.cpp > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::StatsActionVisitor' > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(29) > : see declaration of 'osgAnimation::StatsActionVisitor' > 1> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(96) > : see reference to class template instantiation 'osg::ref_ptr<T>' being > compiled > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 1>ActionCallback.cpp > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::StatsActionVisitor' > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(29) > : see declaration of 'osgAnimation::StatsActionVisitor' > 1> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(96) > : see reference to class template instantiation 'osg::ref_ptr<T>' being > compiled > 1> with > 1> [ > 1> T=osgAnimation::StatsActionVisitor > 1> ] > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 1>Action.cpp > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::Timeline' > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/ActionVisitor(26) > : see declaration of 'osgAnimation::Timeline' > 1> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 1> with > 1> [ > 1> T=osgAnimation::Timeline > 1> ] > 1> C:\Tools\msvs8\VC\include\vector(565) : see reference to class > template instantiation 'osg::ref_ptr<T>' being compiled > 1> with > 1> [ > 1> T=osgAnimation::Timeline > 1> ] > 1> C:\Tools\msvs8\VC\include\vector(550) : while compiling class > template member function 'std::vector<_Ty> &std::vector<_Ty>::operator > =(const std::vector<_Ty> &)' > 1> with > 1> [ > 1> _Ty=osg::ref_ptr<osgAnimation::Timeline> > 1> ] > 1> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/ActionVisitor(42) > : see reference to class template instantiation 'std::vector<_Ty>' being > compiled > 1> with > 1> [ > 1> _Ty=osg::ref_ptr<osgAnimation::Timeline> > 1> ] > 1>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 1>Generating Code... > 1>Build log was saved at > "file://c:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\build\src\osgAnimation\osgAnimation.dir\Release\BuildLog.htm" > 1>osgAnimation - 8 error(s), 2 warning(s) > 2>------ Build started: Project: Plugins osganimation, Configuration: > Release Win32 ------ > 2>Compiling... > 2>ReaderWriter.cpp > 2>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::StatsActionVisitor' > 2> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(29) > : see declaration of 'osgAnimation::StatsActionVisitor' > 2> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 2> with > 2> [ > 2> T=osgAnimation::StatsActionVisitor > 2> ] > 2> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(96) > : see reference to class template instantiation 'osg::ref_ptr<T>' being > compiled > 2> with > 2> [ > 2> T=osgAnimation::StatsActionVisitor > 2> ] > 2>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 2>Build log was saved at > "file://c:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\build\src\osgPlugins\osgAnimation\osgdb_osganimation.dir\Release\BuildLog.htm" > 2>Plugins osganimation - 2 error(s), 0 warning(s) > 3>------ Build started: Project: Examples osganimationtimeline, > Configuration: Release Win32 ------ > 3>Compiling... > 3>osganimationtimeline.cpp > 3>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2027: use of undefined type 'osgAnimation::StatsActionVisitor' > 3> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(29) > : see declaration of 'osgAnimation::StatsActionVisitor' > 3> C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : > while compiling class template member function > 'osg::ref_ptr<T>::~ref_ptr(void)' > 3> with > 3> [ > 3> T=osgAnimation::StatsActionVisitor > 3> ] > 3> > C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osgAnimation/Timeline(96) > : see reference to class template instantiation 'osg::ref_ptr<T>' being > compiled > 3> with > 3> [ > 3> T=osgAnimation::StatsActionVisitor > 3> ] > 3>C:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\include\osg/ref_ptr(33) : error > C2227: left of '->unref' must point to class/struct/union/generic type > 3>Build log was saved at > "file://c:\Dev\OpenSceneGraph-SVN\OpenSceneGraph\build\examples\osganimationtimeline\example_osganimationtimeline.dir\Release\BuildLog.htm" > 3>Examples osganimationtimeline - 2 error(s), 0 warning(s) > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org