<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hello,</p>
<p>Visual C++ 2015 finds a problem (in current master) with the
initialization of virtual base classes in the constructors of the
hierarchies including Object, Callback, NodeCallback,
GUIEventHandler, EventHandler, CameraManipulator,
StandardManipulator, and AnimationManagerBase. Constructors are
attempting to initialize virtual bases Object and Callback from
classes that are not the most-derived, concrete class so those
initializations are being ignored. It doesn't help (or look right)
that multiple levels in the hierarchy attempt (and fail) to
initialize these virtual bases.</p>
<p>An example of the reported warnings is:<br>
C:\Projects\OSG\OpenSceneGraph\src\osgGA\CameraManipulator.cpp(24):
warning C4589: Constructor of abstract class
'osgGA::CameraManipulator' ignores initializer for virtual base
class 'osg::Object'<br>
C:\Projects\OSG\OpenSceneGraph\src\osgGA\CameraManipulator.cpp(24):
note: virtual base classes are only initialized by the
most-derived type<br>
C:\Projects\OSG\OpenSceneGraph\src\osgGA\CameraManipulator.cpp(25):
warning C4589: Constructor of abstract class
'osgGA::CameraManipulator' ignores initializer for virtual base
class 'osg::Callback'<br>
C:\Projects\OSG\OpenSceneGraph\src\osgGA\CameraManipulator.cpp(25):
note: virtual base classes are only initialized by the
most-derived type<br>
</p>
<p>In some cases I see the most-derived classes also do the
(correct) virtual base initialization but it looks like at least
these 2 are missing it:<br>
BasicAnimationManager::BasicAnimationManager(const
AnimationManagerBase& b, const osg::CopyOp& copyop)<br>
TimelineAnimationManager::TimelineAnimationManager(const
TimelineAnimationManager& nc,const osg::CopyOp& co)<br>
</p>
<p>I don't know enough of the internals to say if this could be
causing problems in practice but it would be good to fix this
usage. I'm willing to take a shot at it if that would be helpful.<br>
</p>
<p>Stuart<font size="1"><br>
</font></p>
</body>
</html>