Hi Robert,

Explicit casts could remove some of the warnings. But those related to template exports could be hard to fix without using pragmas.

I suspect that osg/Config is perhaps the only OSG header modified by CMake. So its probably the only place where these pragmas or (define activating them in osg/Export) could be added.

I will try to make this addition.

Wojtek


Hi Wojtek,

Perhaps the middle ground is to place the #pagma's in the CMake
generated include/osg/Config file?

The other approach is to to an explicit casts to avoid the warnings in
the first place.  This is more wordy and while of dubious practical
value would at least fix the warnings.

Robert.

On Fri, Nov 21, 2008 at 2:13 PM, Wojciech Lewandowski
<[EMAIL PROTECTED]> wrote:
Hi, Guys

Unfortunately we don't always want or can use precompiled headers. Besides, argument about precompiled headers is double sided sword. Such precompiled
headers could be also used to enable these warnings after all osg
headers with disabled warnings were included. In my humble opinion this
new policy  will cause more problems when more windows developers update
repository.

I have just updated osg from SVN. My application is modular and is build
from twenty something dlls. Most of them use osg. And of course during
compilation of the code under VisualStudio 9.0 I see a tons of OSG related
warnings (excerpt from compiler output below). On the other hand we don't
use precomiled headers because we want the code to be linux portable. Sure I can disable warnings in compiler properties for these projects. But I think
that this is bad idea to force  this  every windows OSG application
developer to change all their projects.

In my opinion this problem should be fixed at OSG level - compilation of
OSG headers should not produce warnings (at least not such number) even if
this is actually VisualStudio problem. I also agree that disabling these
warnings permanently in osg/Export was also controversial as it suppressed
them in user applications. But in former version we did not see bogus
VisualStudio warnings and those who wanted them could enable them again.
This time we all will see them and will have to change their existing
projects.

It looks like only good solution could be wrapping osg classes with pragma
push/pop disabling warnings only when these classes are built. But here I
expect that Robert will object and say again that fixes for over sensitive
compiler warnings could actually bring some errors.

Some middle step solution could be CMake define which would activate warning
disable in osg\Export. Would this be acceptable ?

What do other OSG windows developers think ?

Cheers,
Wojtek Lewandowski


24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/BufferObject(374) : warning
C4251: 'osg::PixelBufferObject::_bufferEntryImagePair' : struct
'std::pair<_Ty1,_Ty2>' needs to have dll-interface to be used by clients of
class 'osg::PixelBufferObject'

24> with

24> [

24> _Ty1=osg::BufferObject::BufferEntry,

24> _Ty2=osg::Image *

24> ]

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Array(169) : warning C4251:
'osg::Array::_vbo' : class 'osg::ref_ptr<T>' needs to have dll-interface to
be used by clients of class 'osg::Array'

24> with

24> [

24> T=osg::VertexBufferObject

24> ]

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Quat(366) : warning C4244:
'argument' : conversion from 'const osg::Quat::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Quat(366) : warning C4244:
'argument' : conversion from 'const osg::Quat::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Quat(366) : warning C4244:
'argument' : conversion from 'const osg::Quat::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Quat(369) : warning C4244:
'argument' : conversion from 'const osg::Quat::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(585) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(585) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(585) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(601) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(601) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(601) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec3f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(617) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(617) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(617) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(617) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(632) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(632) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

24>C:\dev\OSG_SVN\OpenSceneGraph\include\osg/Matrixd(632) : warning C4244:
'argument' : conversion from 'const osg::Matrixd::value_type' to
'osg::Vec4f::value_type', possible loss of data

----- Original Message -----
From: Simon Hammett
To: OpenSceneGraph Users
Sent: Friday, November 07, 2008 5:35 PM
Subject: Re: [osg-users] pragma warnings disabled in headers


2008/11/7 Robert Osfield <[EMAIL PROTECTED]>

On Fri, Nov 7, 2008 at 3:42 PM, Simon Hammett
<[EMAIL PROTECTED]> wrote:
> I agree with Peter, arbitrarily turning off peoples warnings isn't > good
> practice.

The OSG generally doesn't disable warnings, warning disabling is only
done on VS as it's had a history of producing lots of warnings on
correct code.

It's a number of years since I've used Windows.  I do occassionally up
the warning levels on the OSG via's our Cmake's options for this, this
can help you spot some useful mistakes, but it also flags lots of
warnings that mislead more than they inform so you have to enable them
with an eye to what the warnings really mean - I do occassionally see
"fixes" to warnings that while well meaning actually break code.

If it's possible to get VS to disable warnings via compiler options
rather than in source #pragma then this would be the best solution,
it's what we have under gcc.

It is possible to disable via the command line.
I'll have a look into modifying the cmake stuff,
I've got a couple of things to submit as well, so
I'll post to submissions once I'm done.

--
The truth is out there. Usually in header files.

________________________________

_______________________________________________
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


_______________________________________________
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

Reply via email to